7日前のファイルを削除

7日前のファイルを削除

Linux(FreeBSD)7日前のファイルを削除

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(修正時間) 指定日数内に修正、更新されたファイル

最終更新日:

関連記事

人気記事

新着情報