Bash如何修改find命令,删除多后缀文件时排除Resources目录
调整后的命令
find . -path ./Resources -prune -o \( -iname "*.ini" -o -iname "*.properties" -o -iname "*.xml" \) -type f -delete
修改说明
- 新增的
-path ./Resources -prune -o是排除逻辑核心:- 匹配当前工作目录下的
Resources目录,命中后执行prune操作,直接跳过该目录及其所有子目录的遍历 -o是逻辑或运算符,代表只有没命中Resources目录的路径,才会执行后续的后缀匹配、删除逻辑
- 匹配当前工作目录下的
- 额外给通配符加了双引号,避免shell提前展开通配符导致匹配异常
安全测试建议
正式执行删除前,可以先把命令末尾的-delete替换为-print运行,先打印出所有待删除的文件列表,确认符合预期后再换回-delete执行,避免误删文件。
内容的提问来源于stack exchange,提问作者cshermans
相关产品推荐
相关产品推荐

