我希望我的脚本能够找到某种文件类型并将其删除。
我知道这find path/to/directory/ -type f -name '*.ext' -delete
将找到并删除所有带有该扩展名的文件。
现在我还想让我的脚本删除任何以数字结尾的文件,无论扩展名是什么,以及以扩展名结尾的文件。
我尝试了以下命令,但没有成功:
find path/to/directory/ -type f -name '*.ext' -name '*[0-9].* -delete
find path/to/directory/ -type f -name '*.ext' '*[0-9].* -delete
find path/to/directory/ -type f -name '*.ext,*[0-9].* -delete
这些都没有用,我不确定我到底需要改变什么或者我做错了什么。
答案1
删除以扩展名结尾的文件以及以数字结尾的任何文件,无论扩展名是什么
这要求条件由逻辑“或”连接,而不是默认的逻辑“与”(需要括号,因为“或”的优先级低于“与”,并且必须对括号进行转义或引用,以便 shell 将它们find
作为文字传递):
find path/to/directory/ -type f \( -name '*.ext' -o -name '*[0-9].*' \) -print
一旦您确定它正在做正确的事情,请将其更改-print
为。在的 GNU 实现中,如果您愿意,您可以使用代替。-delete
find
-or
-o