Linux locate 作用,linux中的locate命令的详细解释

linxu下的locate命令可以在搜寻数据库时快速找到档案,是个很方便的命令。下面由学习啦小编为大家整理了linux的locate命令的详细解释的相关知识,希望对大家有帮助!

一、linux中的locate命令的详细解释

1.命令格式:

Locate [选择参数] [样式]

2.命令功能:

locate 命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令 在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值 中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)

locate 指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*” 或”?”等)来指 定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录 录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。

locate 指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直 接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。

ps1:updatedb命令用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中

补充说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

updatedb命令用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中。

3.命令参数:

-e 将排除在寻找的范围之外。

-1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。

-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。

-q 安静模式,不会显示任何错误讯息。

-n 至多显示 n个输出。

-r 使用正规运算式 做寻找的条件。

-o 指定资料库存的名称。

-d 指定资料库的路径

-h 显示辅助讯息

-V 显示程式的版本讯息

二、Linux中的locate命令详解实例

实例1:查找和android相关的所有文件,并且只显示前5个

命令:

location android -n 5

输出:

1 aijian.shi@U-aijian-shi:~$ locate android -n 5

2 /data/nishome/tdsw1/aijian.shi/.android

3 /data/nishome/tdsw1/aijian.shi/.android/adbkey

4 /data/nishome/tdsw1/aijian.shi/.android/adbkey.pub

5 /data/nishome/tdsw1/aijian.shi/.cache/software-center/icons/android-user-es-06-icon-001-001_Portada_AU06x64.png

6 /data/nishome/tdsw1/aijian.shi/.cache/software-center/icons/android-user-es-07-icon-icon_AU07.png

7 aijian.shi@U-aijian-shi:~$

实例2: 搜索alm的bin目录下所有以i/I开头的文件

命令:

locate ~/alm/bin/I* -i #-i表示不区分大小写

输出:

1 aijian.shi@U-aijian-shi:~$ locate ~/alm/bin/I* -i

2 /data/nishome/tdsw1/aijian.shi/alm/bin/IntegrityClient

3 /data/nishome/tdsw1/aijian.shi/alm/bin/IntegrityClient.lax

4 /data/nishome/tdsw1/aijian.shi/alm/bin/ident

5 /data/nishome/tdsw1/aijian.shi/alm/bin/im

6 /data/nishome/tdsw1/aijian.shi/alm/bin/integrity

7 aijian.shi@U-aijian-shi:~$

*在shell中表示通配符,表示零个或多个字符。 比如当前目录下有abc.c、abdd.c、abeff.c。可以用ls ab*.c来查看

注意

ps:

Linux手动更新locate数据库命令:

updatedb

输出:

1 aijian.shi@U-aijian-shi:~/Downloads$ updatedb

2 updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

3 aijian.shi@U-aijian-shi:~/Downloads$

4 aijian.shi@U-aijian-shi:~/Downloads$ sudo updatedb #开启updatedb手动更新数据库权限

5 [sudo] password for aijian.shi:

6 aijian.shi@U-aijian-shi:~/Downloads$

可以看到,我的linux机器没有sudo权限,所以无法手动更新数据库。

三、Linux中的locate命令的用法详解

#查看locate版本信息-V

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate -V

mlocate 0.25

Copyright (C) 2007 Red Hat, Inc. 保留所有权利。

本软件在 GPL v.2 下发布。

本程序不提供任何担保,在法法律允许的范围内予以排除。

#查看locate帮助信息

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate -h

用法: locate [OPTION]... [PATTERN]...

在mlocate数据库中搜索条目.

-b, --basename 匹配唯一的路径名称的基本文件名

-c, --count 只显示找到条目的号码

-d, --database DBPATH 用 DBPATH 替代默认的数据库(/var/lib/mlocate/mlocate.db)

-e, --existing 只显示当前存在的文件条目

-L, --follow 当文件存在时跟随蔓延的符号链接 (默认)

-h, --help 显示本帮助

-i, --ignore-case 匹配模式时忽略大小写区别

-l, --limit, -n LIMIT 限制为 LIMIT项目的输出 (或 计数)

-m, --mmap 忽略向后兼容性

-P, --nofollow, -H 当检查文件时不跟随蔓延的符号

链接

-0, --null 输出时以 NUL 分隔项目

-S, --statistics 不搜索项目,显示有关每个已用数据库的统计信息

-q, --quiet 不报告关于读取数据库的错误消息

-r, --regexp REGEXP 搜索基本正则表达式 REGEXP 来代替模式

--regex 模式是扩展正则表达式

-s, --stdio 忽略向后兼容性

-V, --version 显示版本信息

-w, --wholename 匹配完整路径名 (默认)

将 bug 报告给 mitr@redhat.com.

# 查找etc目录下所有以sh开头的文件

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate /etc/sh

/etc/shadow

/etc/shadow-

/etc/shells

#查看soft目录下以android开头的文件,限定只显示5个,使用 -n

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate -n 5 /soft/android

/home/bixiaopeng/soft/android-studio

/home/bixiaopeng/soft/android-studio-bundle-130.737825-linux.tgz

/home/bixiaopeng/soft/android-studio/Install-Linux-tar.txt

/home/bixiaopeng/soft/android-studio/LICENSE.txt

/home/bixiaopeng/soft/android-studio/NOTICE.txt

#查找时区分大小写

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate makefile

/usr/share/doc/python3-uno/demo/makefile.mk

/usr/share/emacs/23.4/lisp/cedet/ede/makefile-edit.elc

/usr/share/gtksourceview-3.0/language-specs/makefile.lang

/usr/share/icons/Humanity/mimes/16/gnome-mime-text-x-makefile.svg

/usr/share/icons/Humanity/mimes/22/gnome-mime-text-x-makefile.svg

.....

#查找时不区分大小写,使用 -i

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate -i makefile

/usr/src/linux-headers-3.8.0-30/kernel/Makefile

/usr/src/linux-headers-3.8.0-30/kernel/debug/Makefile

/usr/src/linux-headers-3.8.0-30/kernel/debug/kdb/Makefile

/usr/src/linux-headers-3.8.0-30/kernel/events/Makefile

......

# ------------- 使用正规运算式 做查找的条件 locate -r

#查找以makefile结尾的文件

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate -r makefile$

/usr/src/linux-headers-3.8.0-19/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-19-generic/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-27/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-27-generic/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-29/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-29-generic/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-30/scripts/mkmakefile

/usr/src/linux-headers-3.8.0-30-generic/scripts/mkmakefile

#查找以/var/lib/dpkg/info/开头的文件

[plain] view plain copybixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~$ locate -r ^/var/lib/dpkg/info/

/var/lib/dpkg/info/zlib1g:amd64.postinst

/var/lib/dpkg/info/zlib1g:amd64.postrm

/var/lib/dpkg/info/zlib1g:amd64.shlibs

/var/lib/dpkg/info/zlib1g:amd64.symbols

/var/lib/dpkg/info/zlib1g:i386.list

/var/lib/dpkg/info/zlib1g:i386.md5sums

/var/lib/dpkg/info/zlib1g:i386.postinst

/var/lib/dpkg/info/zlib1g:i386.postrm

/var/lib/dpkg/info/zlib1g:i386.shlibs

/var/lib/dpkg/info/zlib1g:i386.symbols

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值