使用Locate命令在Linux中快速搜索文件
时间:2020-03-05 15:28:50 来源:igfitidea点击:
顾名思义,Linux中的locate命令用于定位(搜索)文件。
它具有以下语法:
locate [options] filename
尽管使用locate命令确实很简单,但它附带了许多if和buts。
对于来说,如果找不到文件,则不一定意味着该文件在系统上不存在。
我将解释locate命令的工作方式以及如何使用它查找文件。
在Linux中使用定位命令locate
定位命令适用于索引,例如:文件位置数据库。
使用该命令时,它引用此索引而不是搜索整个文件系统。
这就是为什么locate在Linux中快速找到文件的原因。
一些Linux发行版会定期自动为整个文件系统建立索引。
我们也可以手动构建此索引(我将在本文后面向我们展示)。
使用locate命令非常简单。
我们只需要指定文件名:
locate filename
结果将显示找到指定文件的所有位置。
Hyman@theitroad:~$locate desktop.iso /home/igi/desktop.iso
最好的部分是,我们无需在特定目录中即可找到文件。
请记住,locate命令不是搜索文件系统,而是搜索索引。
这就是为什么在查找文件时无需指定路径或者目录的原因。
我们还可以使用-i选项执行不区分大小写的搜索:
Hyman@theitroad:~$locate -i desktop.iso /home/igi/desktop.iso /home/igi/Downloads/Desktop.iso
请记住,结果可能会显示所有名称中包含搜索词的文件。
Hyman@theitroad:~$locate -i desktop /home/igi/eoan-desktop-amd64.iso /home/igi/Bionic-Desktop-amd64.iso /home/igi/desktop.iso /home/igi/Downloads/Desktop.iso
我们也可以将regex与locate一起使用:
locate -r regex_expression
使用updatedb创建我们自己的locate命令索引
这只是出于提供信息的目的,我认为我们不需要使用它。
如果要创建当前目录(及其子目录)的索引,则可以使用updatedb命令,如下所示:
updatedb -l0 -U my_directory -o index_file
创建此索引文件后,可以要求locate命令显式使用此索引:
locate -d index_file file_name
locate是否比find命令更好?
如果我们希望搜索目录结构不变的文件,那么使用locate命令是个不错的选择。这也是超级快。
但是find命令为我们提供了很多选择,特别是用于执行复杂的搜索选项。