find
を使用して複数のファイルを検索し、を使用してすべてのファイルを削除したいと思います-exec
。頑張った
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
ただし、これはfileAsではなく「fileB」ファイルのみを削除するようです。
答え1
-o
アクションでも機能するため、アイテムをグループ化する必要があります。
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
ところで、find
実装では以下をサポートすることもできます-delete
。
find ./ -type f \( -name fileA -o -name fileB \) -delete
答え2
別のオプション:
WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted.
find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f
または、可能であれば興味深い文字を含むファイルをキャプチャします。
NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method)
find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f