Bash

刪除文件夾中以外的某些類型的文件

  • April 8, 2016

我的makefilefor中有一個命令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 {} +

引用自:https://unix.stackexchange.com/questions/275030