如何用Bash删除多个扩展名的所有文件,但保留一个目录?

3

我有这段代码:

find . \( -iname \*.ini -o -iname \*.properties -o -iname \*.xml \) -type f -delete

它会删除所有包含这些扩展名的子文件夹中的内容,正是我想要的。

唯一要改变的是我现在希望排除一个名为 "Resources/" 的目录。我希望它删除所有子文件夹中指定扩展名的文件,但不包括 Resources 目录。

然而,我不知道该如何实现。

非常感谢您提供任何帮助。

1个回答

3
以下命令应排除资源目录,
find . \( -iname \*.ini -o -iname \*.properties -o -iname \*.xml \) -type f -not -path "./resources/*" -delete

1
为什么“-not path”不必放在前面?难道谓词不是从左到右进行评估的吗? - user1934428

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接