7日前のファイルを削除

サラトガIT日記 > Linux(UNIX) > 7日前のファイルを削除 7日前のファイルを削除

※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい

2007-10-30

 

Linux でバックアップファイルを作成するときに、いつ作成したのかがわかりやすいようにファイル名に日付を付けたりします。

TODAY=`date +%Y-%m-%d`

tar czvf hogehoge-${TODAY}.tar.gz hogehoge

今までは、1 週間前のデータは date 関数で 7 日前って指定していたのですが、find 関数の -ctime 使えばもっと簡単だったのですね。

(例)
date 関数を使った場合

[Linux]
OLD_DATE=`date -d '7 days ago' +%Y-%m-%d`

[FreeBSD]
OLD_DATE=`date -v-7d +%Y-%m-%d`

if [ -f hogehoge-${OLD_DATE}.tar.gz ] ; then
    rm hogehoge-${OLD_DATE}.tar.gz
fi

(例)
find 関数を使った場合

find ${対象ディレクトリ} -type f -ctime +7 | xargs rm

上の例では、該当ファイルがなかった場合の対応はしていませんが、いろいろと応用もきくと思います。

atime(アクセス時間) 指定日数内にアクセスされたファイル
ctime(作成時間) 指定日数内に属性変更されたファイル
mtime(修正時間) 指定日数内に修正、更新されたファイル

関連記事

上記の記事に関連する記事(最新の10件)です。