如何更有效地使用 find 命令?

如何更有效地使用 find 命令?

我想知道有效使用 find 命令的最佳方法是什么?

我通常使用,find [filename] [dir]它会给我一长串文件名,其中没有一个与我的搜索相关。

我只需要在特定目录中查找一个文件。该命令是什么?

答案1

您通常会告诉 find 从哪里开始搜索以及要查找什么。因此,搜索路径的语法和您实际要查找的内容是不同的。

对于您提到的用例,假设您想passwd在以下位置找到文件/etc

find /etc/ -name passwd

你说的是“从 etc 开始,寻找一个文件,其姓名passwd

如果您未指定条件(或 find 术语中的“选项”),find 会从您指定的路径(或路径)开始,并递归查找下面的所有文件和目录。因此,选项会“过滤”这些文件以缩小您要查找的范围。

查找文件系统中任何位置的所有 JPG 文件:

find / -name "*jpg" 

建议在选项中使用引号,否则 shell 扩展可能会给您带来麻烦。

在文档或下载中查找任何 pdf 文件(无论大小写):

find Documents/ Downloads/ -iname "*pdf"

如果您这样做man find并向下滚动到 TESTS,您将找到 find 可以用来缩小搜索范围的所有“条件”。您可以搜索具有特定文件名的文件、由特定用户或组拥有的文件、具有特定文件权限的文件、特定类型的文件(例如,-type d将仅查找目录,而-type f将仅查找纯文件,不包括目录)、比特定天数(或分钟)更新或更早的文件、空文件、可执行文件等。

在 find 的手册页中,您还会发现一个名为 ACTIONS 的部分,这些部分可以遵循条件,并且将由符合所有条件的任何文件触发。因此,您可以find执行诸如删除它找到的文件、对其执行任意命令等操作。

但当然基本语法仍然存在:

find [starting path(s)] [conditions or criteria]

相关内容