Linux 之 locate 命令
命令简介
locate(locate)
命令用来查找文件或目录。 locate 命令要比find -name
快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db
。这个数据库中含有本地所有文件信息。Linux
系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis
和locate
查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用 locate 之前,先使用updatedb
命令,手动更新数据库。整个locate
工作其实是由四部分组成的。
/usr/bin/updatedb 主要用来更新数据库,通过 crontab 自动完成的
/usr/bin/locate 查询文件位置
/etc/updatedb.conf updatedb 的配置文件
/var/lib/mlocate/mlocate.db 存放文件信息的文件
如果系统中没有此命令
初次使用需要执行
updatedb
,不然会出现locate: can not stat ()
/var/lib/mlocate/mlocate.db': No such file or directory`
用法
命令参数
-e 将排除在寻找的范围之外。
-1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会使速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
-f 将特定的档案系统排除在外,例如我们没有必要把 proc 档案系统中的档案 放在资料库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 n 个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定资料库存的名称。
-d 指定资料库的路径
-h 显示辅助讯息
-V 显示程式的版本讯息
查找和pwd
相关的所有文件
搜索 etc 目录下所有以 sh 开头的文件
输出 locate 所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等
updatedb 的配置文件/etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" #开启搜索限制
PRUNEFS = #搜索时不搜索的文件系统
PRUNENAMES = #搜索时不搜索的文件类型
PRUNEPATHS = 搜索时不搜索的路径
原文链接:https://rumenz.com/rumenbiji/linux-locate.html微信公众号:入门小站
版权声明: 本文为 InfoQ 作者【入门小站】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8032fd517be2452ebc8aca4d】。文章转载请联系作者。
评论