在 Linux 中查找文件名并指定目录的快速方法

Fast way to find file names in Linux and specify directory

这个命令很慢:find / -name 'program.c' 2>/dev/null

1) 有更快的选择吗?

2) 是否有替代上述命令在特定嵌套目录(但不是整个系统)中搜索文件的方法?

命令中的第一个 / 是 find 开始搜索的基本目录。您可以指定您喜欢的任何目录,因此如果您知道 program.c 在您的主目录中的某处,您可以执行 find ~ -name 'program.c' 或者如果它在 /usr/src 中,则执行 find /usr/src -name 'program.c'

这应该对 1 和 2 都有帮助。

如果你想要一个不是 find 的命令可以更快,你可以查看 mlocate 的东西。如果你最近完成了 updatedb(或者让 cron 在一夜之间为你完成),你可以做 locate <pattern> 并且它会向你显示与 file/directory 名称中的模式匹配的所有地方,这通常非常快.

虽然 locate & updatedb 是针对整个系统的,但通常搜索速度更快。

为了快速搜索,您可能需要 locate 它通常设置为每天扫描文件系统,并为文件编制索引。

http://linux.die.net/man/1/locate