在Linux工作时,最常见的操作之一是搜索文件和目录。在Linux,findlocate是你搜索文件最常用的命令。

locate是按文件目录名称进行搜索的最快,最简单的命令。在本教程中,我们将详解如何在Linux使用locate命令。

locate 命令工作方式

locate命令在updatedb命令生成的数据库记录搜索指定关键词或者模式。然后将搜索结果打印在终端,每行是一个文件的记录。

安装locate命令时,将会创建一个cron作业updatedb命令每24小时运行一次命令。这样可以确保数据库得到定期更新。

你也可以以root或具有sudo权限的用户运行命令sudo updatedb手动更新数据库记录。要了解cron作业的更多信息,请查看/etc/cron.daily/mlocate文件。

sudo updatedb

更新过程将花费一些时间,具体取决于文件和目录的数量以及系统的速度。数据库更新之后创建的文件不会在locate命令搜索结果中出现。

与功能更强大的find命令搜索相比,locate运行速度更快,但缺少许多功能,并且只能根据文件目录名称进行搜索。

locate 命令仅搜索存在的文件

默认情况下,locate命令不检查文件是否仍然存在。如果您在更新数据库后删除了文件并且该文件与搜索模式匹配,locate命令仍然在搜索结果打印已删除的文件。

要在运行locate命令时检查文件是否存在,请使用locate命令的-e/--existing选项。

例如命令locate -e *.json仅在搜索结果中打印仍然在Linux系统文件存在的.json文件。

locate -e *.json