Linuxで特定のパターンにマッチするファイルの削除方法について簡単にメモ
例1: /tmpディレクトリ配下の128bit hash(例:e111c876b32143abccd98bb56542bcc2)のパターンにマッチするファイルをすべて削除
regextypeを指定しないと我々が普段(?)よく知っているposixのregexが使えないことに注意!
find /tmp -type f -regextype posix-egrep -regex '\./[0-9a-f]{32}' -delete
例2: /tmpディレクトリ配下の、AAAで始まるディレクトリで、更新日が5日以前のものを、ディレクトリの中身のファイルも含めてすべて削除
最後の「-exec {} +」は複数のファイルをまとめてコマンド実行するという意味
「-exec {} ;」の場合はファイル一個ずつの処理になるので、rmの場合は「-exec {} +」の方が効率が良い。
find /tmp -mindepth 1 -maxdepth -type d -mtime +5 -name ".AAA*" -exec rm -rf {} +
コメント