findを使用して複数のファイルを検索し、それらをすべて削除したい-execを使用します。

find ./ -type f -name fileA -o -name fileB -exec rm {} \; 

を試しましたが、fileAsではなくファイル “fileB”のみが削除されているようです。

コメント

  • " fileB 、ちなみに。
  • @Wildcardストレートではありませんrm('試行しますが、失敗します)。
  • @Kusalananda、ああ、そうです。

回答

-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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です