
Mac ターミナルを使用して、特定の正規表現または同様の解決策に一致するディレクトリ内のファイルを削除するにはどうすればよいですか?
答え1
コマンドを使用しますfind
。
正規表現に一致するすべてのファイルを(再帰的に)検索します。find . -type f -regex '/ex/'
正規表現に一致するすべてのファイルを(再帰的に)検索して削除します。find . -type f -regex '/ex/' -exec rm {} \;
括弧には見つかったパス名が格納され、バックスラッシュは find に渡されるためセミコロンをエスケープします。エスケープしないと、シェルによって消費されてしまいます。理解できない場合は、「Bash シェルの学習」の最初の 2 章を読んでください。
その他のオプションについては、man ページを確認してくださいfind
。検索方法は他にもたくさんあります。
答え2
jorelli の回答と非常によく似ています。これは私が使用しているものです:
find . -regex '/ex/' -print0 | xargs -0 rm
および引数-print0
により、-0
find は char 0 で区切られたリストを出力し、xargs はrm
リストの各要素でコマンドを実行するため、スペースを含むパスは問題になりません。