如何使用 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
在列表的每个元素中执行命令,因此带有空格的路径不是问题。