3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(Linux)指定した日時より更新日時が古いファイルを削除する

ファイルの更新日時(mtime)が指定した日時より古ければ削除する方法です。

find コマンドを使うと簡単にできます。

下記のような感じになります。

指定したディレクトリ内で7日より古いもの削除

find /home/hoge/tmp -mtime +7 -type f -exec rm -f {} \;

指定したディレクトリでファイル名に"aa"を含むで7日より古いファイルを削除

find /home/hoge/tmp -name "aa*" -mtime +7 -type f -exec rm -f {} \;

ちなみに、ファイル自体の更新日時(mtime)でなく、ファイル名に日付を埋めこんでいてその日付文字列から判断して古いファイルを削除したいという場合は、(Linux)バックアップシェルスクリプトで世代管理1の最後のほうでやり方を書いています。

参考:

find - ファイル検索コマンド

UNIXの部屋 コマンド検索:find (*BSD/Linux)

MISTY-NET UNIXコマンド講座

◇ディレクトリとファイルの検索◇初心者のためのLinuxサーバー構築講座☆お便利.com

ファイルの検索(1) - Linuxコマンド道場:ITpro