web-dev-qa-db-ja.com

Mac端末を使用して、正規表現に一致するディレクトリ内のファイルを削除します

Mac端末を使用して、特定の正規表現または同様のソリューションに一致するディレクトリ内のファイルを削除するにはどうすればよいですか?

3
adardesign

findコマンドを使用します。

正規表現に一致するすべてのファイルを(再帰的に)検索します:find . -type f -regex '/ex/'
正規表現に一致するすべてのファイルを(再帰的に)検索し、それらを削除します:find . -type f -regex '/ex/' -exec rm {} \;

角かっこは見つかったパス名を格納し、バックスラッシュはfindに渡されるため、セミコロンをエスケープします。それを逃がさなければ、それはシェルによって消費されるでしょう。それが頭に浮かんだ場合は、「Bashシェルの学習」の最初の2つの章を読んでください。

その他のオプションについては、マニュアルページでfindを確認してください。検索する方法は他にもたくさんあります。

11
jorelli

ジョレリの答えと非常によく似ています。これは私が使用するものです:

find . -regex '/ex/' -print0 | xargs -0 rm

-print0および-0引数により、findはchar 0で区切られたリストを出力し、xargsはリストの各要素でrmコマンドを実行するため、スペースを含むパスは問題になりません。

2
Sergio Acosta