以前、find の -mtime パラメータの本当の意味を理解していませんでした
シェルスクリプトを書いていて、定期的にファイルを削除していたときに、-mtime パラメータをよく使用していたので、詳しく調べて理解するつもりでした。
man find の説明:
-mtime n
ファイルのデータは n*24 時間前に最後に変更されました。
丸めがファイル変更時間の解釈にどのように影響するかを理解するには、-atime のコメントを参照してください。 last accessed n*24 hours ago. find が 24 時間前に
ファイルに最後にアクセスされた時間を計算するとき、小数部分は無視されるため、-atime +1 と一致するには、ファイルは少なくとも
にアクセスされている必要があります。 2 日前
find $HOME -mtime 0
過去 24 時間以内に変更されたホーム ディレクトリ内のファイルを検索します。この
コマンドは、各ファイルが最後に変更されてからの時間が で除算されるため、このように機能します。 24 時間で、残りはすべて破棄されます。つまり、-mtime 0 に一致するには、ファイルは過去の変更が必要になります。次のファイル リストは、実験を行うために使用されます
[oracle@goolen Arch] $ ll -h
合計 1.1G
-rw-r----- 1 oracle oinstall 40M 4月 29 22:00 archive_1_53_844522225.arc
-rw-r----- 1 oracle oinstall 45M 4月 29 22:29 archive_1_54_844522225 .arc
-rw-r----- 1 oracle oinstall 38M 4月 30 16:30 archive_1_55_844522225.arc
-rw-r----- 1 oracle oinstall 38M 4月 30 16:35 archive_1_56_8 44522225 .arc
-rw -r----- 1 oracle oinstall 42M 4月 30 22:00 archive_1_57_844522225.arc
-rw-r----- 1 oracle oinstall 45M 4月 30 22:36 archive_1_58_844522225.arc
-rw- r---- - 1 oracle oinstall 38M 5月 1 14:00 archive_1_59_844522225.arc
-rw-r----- 1 oracle oinstall 38M 5月 1 22:00 archive_1_60_844522225.arc
-rw-r----- 1 oracle oinstall 41M 5月1 22:37Archive_1_61_84452222255.ARC
-RW-R ----- 1 Oracle Oinstall 41M 5月2日22:00 ARCHIVE_1_62_8445222225.-arc-Rw-r ----- 1 Oracle Oinstall 45m 5月22:38 Archive_1_63_844522225。 arc
-rw-r----- 1 oracle oinstall 42M 5月 3 06:00 archive_1_64_844522225.arc
-rw-r----- 1 oracle oinstall 40M 5月 3 14:09 archive_1_65_84452222 5.arc
-rw- r----- 1 oracle oinstall 45M 5月 3 22:39 archive_1_66_844522225.arc
-rw-r----- 1 oracle oinstall 39M 5月 4 06:00 archive_1_67_844522225.arc
-rw-r- ---- 1 oracle oinstall 38M 5月 4 日 17:00 archive_1_68_844522225.arc
-rw-r----- 1 oracle oinstall 45M 5月 5 08:10 archive_1_69_844522225.arc
-rw-r----- 1 oracle oinstall 45M 5月 5 10:28Archive_1_70_8445222255.ARC
-RW-R ----- 1 Oracle Oinstall 6.7M 5月5日14:5:57 ARCHIVE_1_71_8445222225-R ----- 1 Oracle Oinstall 38M 5月5日22:00 ARCIVE_1_72_844522225。 arc
-rw-r----- 1 oracle oinstall 38M May 6 08:28 archive_1_73_844522225.arc
-rw-r----- 1 oracle oinstall 38M May 6 14:00 archive_1_74_844522225.ar c
-rw- r----- 1 oracle oinstall 39M 5月 6 日 22:00 archive_1_75_844522225.arc
-rw-r----- 1 oracle oinstall 45M 5月 7 日 08:29 archive_1_76_844522225.arc
-rw-r--- --- 1 oracle oinstall 38M 5月 7 日 22:00 archive_1_77_844522225.arc
-rw-r----- 1 oracle oinstall 38M 5月 8 05:00 archive_1_78_844522225.arc
-rw-r----- 1 oracle oinstall 38M 5月 8 09:00 archive_1_79_844522225.arc
[oracle@goolen Arch]$ date
Thu May 8 16:29:09 CST 2014
++5 月 8 日 16:30 です
+++ まず始めましょう出力を見てみましょう-mtime +1 パラメータの:
[oracle@goolen Arch]$ find ./* -name "*.arc" -mtime +1 -exec ls -l {} ;
-rw-r-- --- 1 oracle oinstall 41009664 4月29日 22:00 ./archive_1_53_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 4月29日 22:29 ./archive_1_54_844522225.arc
-rw-r------ -1 Oracle OINSTすべて39376384 4 月 30 日 16:30 ./archive_1_55_84452225.ARC
-RW-R ---- 1 Oracle Oinstall 39756800 4 月 30 16:35 ./archive_56_844452225.arc
-RW-R ----- 1 Oracle Oinstall 435973 4月12日 30日22:00 ./archive_1_57_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 Apr 30 22:36 ./archive_1_58_844522225.arc
-rw-r----- 1 oracle o install 4270 1824 May 1 22:37 ./archive_1_61_844522225.arc
-rw-r----- 1 oracle oinstall 42967040 5 月 2 日 22:00 ./archive_1_62_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 5 月 2 日 22:38 ./archive_1_63_844522225.arc
-rw -r----- 1 oracle oinstall 43959808 5 月 3 日 06:00 ./archive_1_64_844522225.arc
-rw-r----- 1 oracle oinstall 41638400 5 月 3 日 14:09 ./archive_1_65_844522225.arc
-rw-r ----- 1 oracle oinstall 46589440 5 月 3 日 22:39 ./archive_1_66_844522225.arc
-rw-r----- 1 oracle oinstall 39922176 5 月 4 日 06:00 ./archive_1_67_844522225.arc
-rw-r-- --- 1 oracle oinstall 39352832 5 月 4 日 17:00 ./archive_1_68_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 5 月 5 日 08:10 ./archive_1_69_844522225.arc
-rw-r---- - 1 oracle oinstall 46373888 5 月 5 日 10:28 ./archive_1_70_844522225.arc
-rw-r----- 1 oracle oinstall 7001600 5 月 5 日 14:57 ./archive_1_71_844522225.arc
-rw-r----- 1 Oracle Oinstall 39364608 5月5日22:00./ARCHIVE_1_72_844522225.ARC
-RW-R---- 1 Oracle OINSTALL 39477248 5月608:28 ./ARCHIVE_1_73_8452222255 39361024 5 月 6 日 14:00 ./archive_1_74_844522225.arc
+++ コマンドで返される文書リストは archive_1_53_844522225.arc - archive_1_74_844522225.arc
時間通りに見てください。 5月6号 14点の
5月6号他に文が 1 つあります、上 22 点生成、出力結果里なし
-rw-r----- 1 oracle oinstall 39M May 6 22:00 archive_1_75_844522225.arc
按我以前の理解(蔙误的)、-mtime +1 、出力されたファイルは 5 月 7 号以前のすべての文書ですが、ここには出力 6 号上 22 点で生成された archive_1_75_844522225.arc が含まれていません
正解の解決策:
-mtime+1 はファイルの修正時間が 1 日を超えていることを示していますの文書、すなわち距離から当時間まで 2 日(48 時間)以外の文書
これも解決できます、つまり 6 号 22 点で生成されたこの文書は出力がない
この場所 -mtime +1 は 48 時間以外のものです、 24 時間以外ではありません、n だけが整数であるため、比 1 の大きさの下の整数は 2、つまり 48 時間以外です
下にある -mtime 1 の出力結果:
[oracle@goolen Arch]$ find ./* -name "*.arc" -mtime 1 -exec ls -l {} ;
-rw-r----- 1 oracle oinstall 40737280 5 月 6 日 22:00 ./archive_1_75_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 5 月 7 日 08:29 ./archive_1_76_844522225.arc
結果は、6号22点で生成されたarchive_1_75_844522225.arcと7号8点29で生成されたarchive_1_76_844522225.arcとして出力されました。この2つのファイル
解読:
-mtime 1の表示ファイルの更新間隔は現在1日です,即距離离当前時間1日(24時間-48時間)の文例
下から見る -mtime 0 の出力結果:
[oracle@goolen Arch]$ find ./* -name "*.arc" -mtime 0 -exec ls - l {} ;
-rw-r----- 1 oracle oinstall 39303680 5 月 7 日 22:00 ./archive_1_77_844522225.arc
-rw-r----- 1 oracle oinstall 39483392 5 月 8 日 05:00 ./archive_1_78_844522225.arc
- rw-r----- 1 oracle oinstall 39208448 May 8 09:00 ./archive_1_79_844522225.arc
解释:
-mtime 0 表示文件修正時間间距離当前0天的文件,即距離当前時間1天に達しない(24時間) 以内の文例
下面看 -mtime -1 の出力結果:
[oracle@goolen Arch]$ find ./* -name "*.arc" -mtime -1 -exec ls -l {} ;
-rw-r----- 1 oracle oinstall 39303680 5 月 7 日 22:00 ./archive_1_77_844522225.arc
-rw-r----- 1 oracle oinstall 39483392 5 月 8 日 05:00 ./archive_1_78_844522225.arc
- rw-r----- 1 oracle oinstall 39208448 May 8 09:00 ./archive_1_79_844522225.arc
解释:
-mtime -1 表示文件修正時間は 1 日未満の文件、すなわち距離离当前時間 1 天(24小時)内の文書