フォルダを除く特定の種類のファイルの削除

フォルダを除く特定の種類のファイルの削除

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 {} +

関連情報