有没有办法提高“查找”速度

我想知道有没有办法在终端中提高 find 的速度,使用 net google 浏览肯定比在本地搜索字符串或仅提交名称具有更好的速度是没有意义的。

我想知道是否存在一种拥有本地索引库的方法,一旦构建,将来 find 命令会非常快。

或者任何其他类型的指针?

非常感谢!

21
2022-06-07 14:39:30
资源 分享
答案: 4

尝试使用 locate,它应该做你想做的事。

16
2022-06-07 15:12:00
资源

正如其他人所提到的,对于更简单的搜索者来说,situation 可能是一个更好的工具。

然而,对于更复杂的搜索,您可能会被 find 困住。

一种加快查找速度的方法是缩小文件所在的目录,而不是查看每个原始目录。

1
2022-06-07 15:11:34
资源

使用 locate

原因是 locate 使用包含所有现有目录站点和数据的数据库目前已建成和你想象的差不多!¢ http://linux.about.com/od/commands/l/blcmdl5_locatedb.htm

在某个设定的(且不可预测的)时间间隔内,运行的任务确实会扫描文件系统,然后用它构造一个数据源。 然后是这个数据库(locatedb)及其正确的索引,locate 命令会中断,而不是在此时扫描您的硬盘驱动器。

所以好处是它是真的与硬盘检查相比,速度很快。 缺点是定位数据库(locatedb)不是“实时”的,因此只能用于“自”上次检查以来存在的数据。

要更新当前运行的 updatedb(或 sudo updatedb,如果需要)

顺便说一句,我刚刚在您所在的地区运行了 sudo updatedb 并且花了 3 1/2 秒! 我有 31,000 份文件。

8
2022-06-07 15:11:11
资源

这在很大程度上取决于您的搜索标准是什么。

如果您搜索文件名或文件名模式,locate 会快得多,但不适用于新生成的文档,因为使用的索引通常仅在每天更新一次。 但如果你能利用它,它会非常快。

但是使用 find 您可以搜索数据维度、文档年龄以及其他无法通过定位搜索的内容。

如果你认在哪里看,你可以利用课程划定搜索范围:

find /some/path -size -10M -size +2M -mtime -365 ...

只会查看 2 到 10 M 的文件,在/some/path 中最多 1 年。

路径中现成的程序可以通过以下方式浏览哪个 ; 帮助、库和配置文件哪里 . 实例:

which java
/usr/bin/java

whereis firefox 
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/share/firefox /usr/share/man/man1/firefox.1.gz

如果您使用 -exec、-execdir、-ok 或 -okdir(在 GNU 中提供 - find 作为示例)对找到的每个文件执行程序,则可以同时将多个文件传递给程序,如果程序支持通过使用“+”而不是“;”来完成您的命令,进行多次辩论。 例子:

find -name "*.pdf" -exec ls -l {} "+" 

这可以显着加快整个过程,但很大程度上取决于个别情况。

12
2022-06-07 15:06:39
资源