macOS Terminal find命令如何搜索多宗卷并删除多个指定文件夹
多宗卷批量搜索方案
macOS 下所有已挂载的宗卷都会作为一级子目录存放在/Volumes路径下,不需要逐个枚举10个宗卷的单独路径,直接将find的搜索根路径设置为/Volumes,即可遍历所有挂载宗卷的全部内容。如果需要同时覆盖当前执行命令的工作目录,在/Volumes后追加.参数即可,和你原有命令的逻辑保持一致。
多目标文件夹同时匹配方法
find命令原生支持多条件匹配,使用-o(逻辑或)参数连接两个名称匹配规则,再用转义括号将两个规则包裹为一个整体,就能同时搜索SearchData和WaveformCache两个目标文件夹。
可直接使用的命令
强烈建议先执行预览命令,确认输出的所有文件夹都是待删除目标,避免误删重要数据
# 预览所有匹配到的文件夹,不执行删除操作 find /Volumes -type d \( -name 'SearchData' -o -name 'WaveformCache' \) -print0 | xargs -0 ls -ld
确认匹配结果完全符合预期后,再执行删除命令:
# 递归删除所有匹配到的文件夹 find /Volumes -type d \( -name 'SearchData' -o -name 'WaveformCache' \) -print0 | xargs -0 rm -rf
关键说明
- 命令中的转义括号
\(、\)不可省略,否则会导致匹配逻辑失效,出现漏匹配、错匹配问题 - 你原有命令中使用的
-print0+xargs -0组合非常规范,可兼容带空格、特殊字符的路径,避免解析报错,建议保留 - 若执行删除时遇到权限报错,一般是对应宗卷为只读挂载,先开启宗卷写入权限即可正常操作
内容的提问来源于stack exchange,提问作者Andre Thomazi
相关产品推荐
相关产品推荐

