使用 Mac 终端删除目录中与正则表达式匹配的文件

使用 Mac 终端删除目录中与正则表达式匹配的文件

如何使用 Mac 终端删除目录中与给定正则表达式或类似解决方案匹配的文件?

答案1

使用find命令。

查找所有与正则表达式匹配的文件(递归地):find . -type f -regex '/ex/'
查找与正则表达式匹配的所有文件(递归地)并删除它们:find . -type f -regex '/ex/' -exec rm {} \;

中括号存储找到的路径名,反斜杠转义分号,因为它被传递给 find;如果没有逃脱,它就会被贝壳吞噬。如果您对此感到困惑,请阅读“学习 Bash Shell”的前两章。

检查手册页以find获取更多选项。还有很多搜索方法。

答案2

与 jorelli 的答案非常相似。这就是我使用的:

find . -regex '/ex/' -print0 | xargs -0 rm

-print0和参数-0导致 find 输出一个 char 0 分隔的列表,并且 xargsrm在列表的每个元素中执行命令,因此带有空格的路径不是问题。

相关内容