Linux有不同的工具来搜索和查找文件和目录。 locate
是其中一个很受欢迎的。另一种定位方法是 find
命令。但它们的工作方式不同。Find命令实时搜索,而locate命令使用一个数据库来保存系统的所有文件和目录。在本教程中,我们将了解如何使用locate。
定位命令语法
locate [OPTION]... PATTERN...
定位命令帮助
我们可以列出有关 locate
命令与 -h
选项。
$ locate -h

更新定位数据库
正如我们在简介中所述,locate命令使用数据库来保存整个文件系统的目录和文件。此数据库不会自动更新。因此,我们应该更新数据库,以便更有效地使用。由于有些文件需要root权限才能读取和更新数据库,因此我们应该为 updatedb
命令。
$ sudo updatedb
通常,此更新操作不会在定期更新中花费太多时间。但如果更新是第一次运行,则可能需要更多的时间来设置数据库。
用“定位”搜索
现在我们已经更新了我们的数据库,我们可以搜索一些术语。我们将使用 locate
命令提供搜索项。在本例中,我们将搜索 a.txt
期限。
$ locate a.txt

从结果可以看出 a.txt
不是搜索文件,只是在完整路径字符串中查找。
仅显示现有结果
如我们所知,locate命令在数据库中查找有关搜索项的文件和文件夹。如果数据库在一年前更新了,结果却不存在了呢。Locate命令可以再次检查结果当前是否存在。我们将使用 -e
激活此功能的选项。
$ locate -e a.txt

我们可以看到第一个结果 /home/ismail/a.txt
未在结果中列出,因为它已在文件系统中删除,但数据库中存在相关记录。与 -e
我们已经修正了结果。
限制结果
有时可能会有很多结果会填满我们的终端。这通常是不需要的情况。有一个选项将限制打印到终端的结果计数。我们将使用 -l
带数字的选项。在这个例子中,我们只想列出5个搜索结果。
$ locate -l 5 a.txt

仅显示结果计数
有时我们只对结果的计数感兴趣。这可以通过helper命令的各种方式来完成。但是locate command all ready提供了一个选项。我们将使用 -c
选项仅列出结果计数。
$ locate a.txt | wc -l

显示统计信息和数据库信息
locate命令的数据库将保存大量的记录。我们可以通过统计数据来获得这方面的信息 -S
选项。这将列出目录计数、文件计数、文件名大小和数据库的总大小。
$ locate -S

显示定位命令版本
locate命令的版本可以用 --version
选项如下。
$ locate --version

相关文章: 如何使用Chmod递归地更改文件和目录权限