サーバ容量が逼迫してきたので、何日より前に生成/編集された特定の拡張子のファイルをまとめて検索/削除したい。
findコマンドにオプションを追加して実行する。
1 | $ find {検索対象ディレクトリ} -name "*.{拡張子}" -mtime +{x日より前} - ls |
検索するファイル名を指定するオプション。
ワイルドカード * を使用することで、特定の拡張子のみに検索を絞ることができる。
最終更新日を検索条件に追加するオプション。
プラスを指定することで、その日より前に作られたファイルが検索の対象となる。
マイナスを指定すると、その日から現在までのファイルが検索対象となる。
検索したファイルに対してls -dils と同等の結果を出力できるオプション。
1日より前に作られたjpgを検索し、ファイルの詳細を表示する。
1 | $ find ./ -name "*.jpg" -mtime +1 -ls |
2 | 128256484 328 -rw-r--r-- 1 hoge fuga 276525 Dec 23 09:18 ./www/abc.jpg |
3 | 128256485 329 -rw-r--r-- 1 hoge fuga 281590 Dec 23 11:19 ./www/foo.jpg |
1 | $ find {検索対象ディレクトリ} -name "*.{拡張子}" -mtime +{x日より前} - exec rm -f {} + |
検索した結果のファイルに対してコマンドを実行できる。
{}は検索したファイルのパスを配置する場所となる。
+ は検索結果のファイルパスを半角スペース区切りで列挙する記法。
rmコマンドにファイルパスを全て渡し、一度に実行するため、処理は早い。
1日より前に作られたjpgを検索し、ファイルを削除する。
1 | $ find ./ -name "*.jpg" -mtime +1 -exec rm -f {} \; |