搜索并删除具有特定扩展名或以数字结尾的文件

搜索并删除具有特定扩展名或以数字结尾的文件

我希望我的脚本能够找到某种文件类型并将其删除。

我知道这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 实现中,如果您愿意,您可以使用代替。-deletefind-or-o

相关内容