删除除文件夹外的某些类型的文件

删除除文件夹外的某些类型的文件

makefile我的for有一个命令clean

rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.annot

现在我想写一个cleanpartial删除这些文件的文件,除了文件夹frontend/和文件夹中的文件frontend/gen/

有谁知道如何正确编写这个命令?

答案1

你应该用find这个。

您可以使用以下命令安全地进行测试:

find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -print

一旦您对打印的文件列表感到满意,请运行实际命令来删除其中的大量文件:

find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -exec rm -f {} +

相关内容