find
を使用して複数のファイルを検索し、それらをすべて削除したい-exec
を使用します。
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
を試しましたが、fileAsではなくファイル “fileB”のみが削除されているようです。
コメント
回答
-o
はアクションにも適用されるため、グループ化する必要があります:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
BTW、find
実装は-delete
もサポートする場合があります:
find ./ -type f \( -name fileA -o -name fileB \) -delete
コメント
- サポートされていない場合' t、おそらく
-exec rm {} +
回答
別の方法:
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
コメント
- ファイル名に関するメモを追加するためだけに、ほぼ1年後に戻ってきた方法、つまり'の献身が気に入っています。 :D
rm
('試行しますが、失敗します)。