指定日付より古いファイルを検索して削除

一発ネタ。
指定日付より古いファイルを検索して削除したいときは、findの "-mtime +数字" オプションを使ってファイル名を検索して、パイプで rm に渡せば良い。

$ find ./ -mtime +20 -name "*.txt" | xargs rm

xargsはパイプで渡された値を次のコマンドの引数にするコマンド。rmじゃなくてechoだとこんな感じになります。

[root@localhost home]# find ./ -mtime +20 -name "*.txt" | xargs echo
./count.txt ./test/count2.txt 

findのmtimeでの時間の指定がやや分かりづらいんですが、こうなります。

find の -mtime +n のまとめ
find の -mtime +n の検索対象となるファイルは以下の通り。
mtime +0 今から24時間以上前のファイル
mtime +1 今から48時間以上前のファイル
mtime +2 今から72時間以上前のファイル
(n + 1) * 24 ってことだね。man にそう書いてあれば良かったのに。

find コマンドの -mtime は +1 でも2日前のファイルが対象