find命令可用于查找匹配特定搜索模式的文件或文件夹。递归地搜索。
接下来,俺将用例子来跟大家一起学习find命令。
找到当前树下所有扩展名为.js的文件,打印每个匹配文件的相对路径:
find . -name '*.js'
在特殊字符(如*)周围使用引号是很重要的,这样可以避免shell解释它们。
在当前树下找到与名称“src”匹配的目录:
find . -type d -name src
使用type f只搜索文件,或type l只搜索符号链接。
-name区分大小写。使用-iname执行不区分大小写的搜索。
您可以在多个根树下搜索:
find folder1 folder2 -name filename.txt
在当前树下找到与“node_modules”或“public”名称匹配的目录:
find . -type d -name node_modules -or -name public
你也可以排除一个路径,使用-而不是-path:
find . -type d -name '*.md' -not -path 'node_modules/*'
你可以搜索文件有超过100个字符(字节)在他们:
find . -type f -size +100c
搜索大于100KB但小于1MB的文件:
find . -type f -size +100k -size -1M
搜索3天前编辑的文件:
find . -type f -mtime +3
搜索 在过去24小时内编辑的文件:
find . -type f -mtime -1
通过添加-delete选项,可以删除与搜索匹配的所有文件。这将删除过去24小时内编辑的所有文件:
find . -type f -mtime -1 -delete
您可以对每个搜索结果执行命令。在这个例子中,我们运行cat来打印文件内容:
find . -type f -exec cat {} \;
请注意终止\;。{}在执行时用文件名填充。