子ディレクトリも含めて特定のファイルを見つけて削除する

ターミナル操作で、子ディレクトリのファイルも含めてある条件に当てはまるファイルを見つけ出して何かしたいことがある。ここでは拡張子が.jpgのファイルを探し出して削除するのを例として説明する。

まずは親ディレクトリ上でターミナルを開き、以下のコマンドを入力する。

find ./ -name "*.jpg" -print

すると、瞬時に子ディレクトリも含めて階層下から拡張子が.jpgのファイルを見つけ出してきて一覧が出力される。表示されたファイルを削除したいときは、

find ./ -name "*.jpg" -exec rm {} \;

と少し書き換えると削除される。rm以下のコマンドを任意のものに置き換えれば別の操作も可能である。
execオプションにより検索されたファイル群がrmコマンドに渡されると考える。このオプションにより、その後に書かれたコマンドを実行後終了するようになる。