如何更有效地使用find命令?
我想知道,有效使用find命令的最佳方法是什么?
我通常使用, find [filename] [dir]
,这给了我一长串的文件名,没有任何与我的搜索相关的文件名。
我只需要在特定目录中找到一个文件。 命令是什么?
你经常告诉你找到从哪里开始搜索,以及寻找什么。 因此,搜索路径的语法和您实际尝试查找的内容是不同的。
对于您提到的用例,我们假设您要在/etc
找到passwd
文件:
find /etc/ -name passwd
你说“从等开始,找一个名字是passwd
的文件
如果你没有指定条件(或查找用语中的“options”),find会做什么,它从你指定的路径(或路径)开始,并以递归方式查找下面的所有文件和目录。 因此选项“过滤”这些文件以缩小您正在寻找的内容。
在文件系统中的任何位置查找所有JPG文件:
find / -name "*jpg"
建议在选项中使用引号,否则shell扩展会让您头疼。
在文档或下载中查找任何pdf文件,无论大小写:
find Documents/ Downloads/ -iname "*pdf"
如果你man find
并向下滚动到TESTS,你会发现找到的所有“标准”可以用来缩小你的搜索范围。 您可以搜索具有特定用户或组的特定文件名的文件,具有特定文件权限,具有特定类型(例如-type d
只能找到目录,而-type f
只能查找纯文件,不包括目录) ,文件比特定天数(或分钟)更新或更旧,文件为空,可执行文件等。
在find的手册页中,您还会找到一个名为ACTIONS的部分,这些部分可以遵循标准,并且将由符合所有条件的任何文件触发。 因此,您可以find
诸如删除find
文件,对它们执行任意命令等操作。
但当然基本语法仍然存在:
find [starting path(s)] [conditions or criteria]