linux locate 命令

在linux环境下,如果要查找某个文件,我们可以用find。但是,通往成功的路径不唯一,我们还有其他的选择,这里介绍一下locate命令,locate 命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。了解了locate的工作原理,我们就知道使用这个工具需要注意的一些点了。其中一个就是updatedb命令,如果需要找最新的文件,可以手动操作一下updatedb命令。不过大部分,我们没有这么细节的要求。

/usr/bin/updatedb   主要用来更新数据库,通过crontab自动完成的
/usr/bin/locate         查询文件位置
/etc/updatedb.conf   updatedb的配置文件
/var/lib/mlocate/mlocate.db  存放文件信息的文件

示例如下,找所有以nginx.conf 结尾的文件。

locate nginx.conf

《linux locate 命令》

对比 find 和 locate,你会发现,find对于比较精确的文件查找是比较方便的,当然也支持更多的选项支持,使用起来可能更复杂一点。并且,如果用find查找一个不知道大致在什么地方的文件,直接从根目录下查找的话,会非常慢。所以find 不太适合这种场景,相反,此时使用locate会非常合适,能帮我们快速定位到这个文件。所以,应当多掌握一些工具,他们总会有自己适合的场景,用对的工具解决合适的问题。

locate 的其他选项支持,可以通过man手册来查询。

点赞

Leave a Reply

Your email address will not be published.