Bash
刪除文件夾中以外的某些類型的文件
我的
makefile
for中有一個命令clean
:rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.annot
現在我想寫一個
cleanpartial
刪除這些文件,除了文件夾frontend/
和文件夾中的文件frontend/gen/
。有誰知道如何正確編寫此命令?
你應該使用
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 {} +