指定日付より古いファイルを検索して削除
一発ネタ。
指定日付より古いファイルを検索して削除したいときは、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 は +1 でも2日前のファイルが対象
find の -mtime +n の検索対象となるファイルは以下の通り。
mtime +0 今から24時間以上前のファイル
mtime +1 今から48時間以上前のファイル
mtime +2 今から72時間以上前のファイル
(n + 1) * 24 ってことだね。man にそう書いてあれば良かったのに。