find コマンドの結果でファイルを削除するときのメモ

自分メモです。

find コマンドで一定時間経過したファイルを 削除するときに次のように書いたりします。

$ find /var/log/hoge -mtime +3 -exec rm {} \;

これで 3 日以上たったファイルを消してくれる・・・と思うんですが これだとディレクトリ /var/log/hoge も含まれてしまいます。

テストで /var/log/hoge を作った直後(3日経過していない場合)や このディレクトリに3日以内にファイルが格納される場合は、 抽出されないので気付きにくいのですが、 しばらく対象のディレクトリに対する更新がない状態で 上のようなコマンドを実行すると 「ディレクトリなので削除できないよ」エラーが出ます。

ですので "-type" オプションの指定を忘れないようにします。

$ find /var/log/hoge -type f -mtime +3 -exec rm {} \;

これでファイルだけが対象になります。

Google サイト内検索

Amazonアソシエイト