指定した接尾辞ファイルを検索して削除

850 ワード

makefileを書く過程でcleanでコンパイル中に発生したものを削除する必要がある.oファイル
ファイルfind[ディレクトリ名]-nameの検索
find obj -name '*.o'  
find obj -name "*.o"  
find obj -name *.o  
find obj -type f|grep .o$

以上の4種類のテストはすべて実行可能で、後でどんな違いがあるか考えます
「削除」には、次の2つの方法があります.
1.findコマンドによる-execオプション
find obj -name *.o -type f -exec rm -f {} \;

2.xargsで
find obj -name *.o | xargs rm -f
find obj -type f | grep .o$|xargs rm -f

最後にmakefileに書き込む場合は
find obj -type f | grep .o$$|xargs rm -f

$はmakefileで特殊文字なので
しかし、最終的には削除前にファイル名を印刷してファイルを間違えないようにするために、最終的に選択することにした.
find obj -type f -name '*.o' -print -exec rm -f {} \;

後の書き方でもこのような効果が得られるかどうかについては、友達が見たら教えてほしいです.ありがとうございます.echoを使ってもいいと思います.