[FAQ CENTER トップ]
[Redhat Enterprise linux 6(EL) FAQ トップへ]





【質問】ファイルのタイムスタンプ(最終変更日時)でファイルを削除する方法

環境:Redhat Enterprise linux 6(EL)

【回答】
ファイルのタイムスタンプ(最終変更日時)を基準としてファイルを削除する方法を紹介します。
(Redhat EL 6.4で確認)

1.予備知識
find には mtime オプションがあり、タイムスタンプを指定して処理を行うことが出来ます。find はタイムスタンプベースの処理に向いています。

Redhat Linuxでは3種類のタイムスタンプが存在します。

atim 最終アクセス日時(ファイルの内容を出力など)
ctime 最終属性変更日時(ファイル名変更、オーナー変更、属性変更など)
mtime 最終変更日時

(*)ファイルの作成日時は記憶されません。


以下のコマンドで各タイムスタンプの確認が可能です。
(1)atimeの表示
ls -lu

(2)ctimeの表示
ls -lc

(3)mtimeの表示
ls -l



2. find で処理
find では mtime によりファイルの一覧を出力することが可能です。

find のmtime オプションは以下の通りです。

(1)本日〜<日数>
find -mtime -<日数>

例:
find -mtime -30
は本日から30日前

(2)<日数>〜<日数の1日前)
find -mtime <日数>

例:
find -mtime 30
は30日前から31日まで


(3)<日数>〜過去全て
find +mtime <日数>

例:
find +mtime 30
30日から古い日付


以下はカレントディレクトリの *.tmp というファイルに対して
60日を経過したファイルを一気に削除する。

# find ./ -name '*.tmp' -type f -mtime +60 | xargs rm -f

=============================================================

以下は実行のサンプルです。以下でテスト用ファイルを生成しました。

touch log0626.tmp -t 201506260000
touch log0627.tmp -t 201506270000
touch log0628.tmp -t 201506280000
touch log0629.tmp -t 201506290000
touch log0630.tmp -t 201506300000
touch log0701.tmp -t 201507010000
touch log0702.tmp -t 201507020000
touch log0703.tmp -t 201507030000
touch log0704.tmp -t 201507040000
touch log0705.tmp -t 201507050000
touch log0706.tmp -t 201507060000
touch log0707.tmp -t 201507070000
touch log0708.tmp -t 201507080000

60日前のファイルを削除 (9月2日に実行)
# find ./ -name '*.tmp' -type f -mtime +60 | xargs rm -f
# ll
合計 0
-rw-r--r-- 1 root root 0 7月 4 00:00 2015 log0704.tmp
-rw-r--r-- 1 root root 0 7月 5 00:00 2015 log0705.tmp
-rw-r--r-- 1 root root 0 7月 6 00:00 2015 log0706.tmp
-rw-r--r-- 1 root root 0 7月 7 00:00 2015 log0707.tmp
-rw-r--r-- 1 root root 0 7月 8 00:00 2015 log0708.tmp


9月2日から見て60日は7月2日。
7月2日以後のファイルが消えているのが分かります。




(*)本ページは Redhat Enterprise Linux 6以後を想定しています。

最終更新日:2015/10/30



[Redhat Enterprise linux 6(EL) FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2012