在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运行速度更快,但缺少许多功能,并且只能根据文件目录名称进行搜索。

ocate 命令正则表达式

如果您需要运行更复杂的搜索,可以使用locate命令的-r/--regexp选项,该选项允许您使用基本正则表达式而不是模式进行搜索。

例如命令locate --regex -i "(.mp4|.avi)"搜索.mp4.avi文件并忽略大小写,-i选项。

locate --regex -i "(.mp4|.avi)"

locate 命令搜索模式与通配符*

locate命令的模式可以是通配符*。当模式不包含通配符时,locate命令将搜索模式*PATTERN*

这就是为什么命令locate .bashrc打印名称包含.bashrc的所有文件。当运行命令locate .bashrc时搜索的模式是*.bashrc*

*通配符是用于表示零个,一个或多个字符的符号。例如命令locate *.md搜索所有.md文件。

locate *.md
Linux locate 命令搜索文件 | myfreax
在Linux,find和locate是你搜索文件最常用的命令
Linux locate 命令搜索文件