(1)find -mtime +N/-N/N 的時間算法:
原文鏈接地址:http://www.oracleblog.org/study-note/how-to-calculate-find-mtime/
在unix或linux環境中經常會用到find -mtime這樣的寫法來找某某時間點之前的文件,至於如何寫find -mtime +N/-N/N,原來並不是很清楚,今天找了些資料看看,畫下了這個圖,以便理解和記憶:
從圖上可以看出,以當前時間點開始算起,+表示往左,從該時間點開始再繼續往更早推,可以稱作xx以外;-表示往右,從該時間點算起往後的時間推,可以稱作xx以內;沒有加減號表示據此此前第N天。因此:
我們來看下面這個例子:
我當前的時間2011年3月1日22:31,我有如下的文件:
E:\testpath>ls -l
total 0
-rwxrwxrwa 1 Administrator None 0 Feb 25 22:37 111.txt
-rwxrwxrwa 1 Administrator None 0 Feb 26 22:38 222.txt
-rwxrwxrwa 1 Administrator None 0 Feb 27 22:38 333.txt
-rwxrwxrwa 1 Administrator None 0 Feb 28 22:01 444.txt
-rwxrwxrwa 1 Administrator None 0 Feb 28 22:30 555.txt
-rwxrwxrwa 1 Administrator None 0 Mar 1 22:31 666.txt<--當前時間的文件
-rwxrwxrwa 1 Administrator None 0 Mar 2 2011 777.txt
E:\testpath>
-mtime +2,表示2天以外的,即從距離當前時間(2011-03-01 22:31)的2天前開始算起,往更早的時間推移。因此,距離當前時間的2天爲:2011-02-27 22:31,在此前的文件,會被選出來。
E:\testpath>find ./ -mtime +2
./111.txt
./222.txt
-mtime +1,表示1天以外的,即從距當前時間的1天前算起,往更早的時間推移。因此2011-02-28 22:31前的文件屬於該結果,2011-02-28 22:31後的文件不屬於該結果:
E:\testpath>find ./ -mtime +1
./111.txt
./222.txt
./333.txt
./444.txt
./555.txt
-mtime 2, 距離當前時間第2天的文件,當前時間爲2011-03-01 22:31,往前推2天爲2011-02-27 22:31,因此以此爲時間點,24小時之內的時間爲2011-02-27 22:31~2011-02-28 22:31,因此這段時間內的文件會被選中出來:
E:\testpath>find ./ -mtime 2
./333.txt
./444.txt
./555.txt
-mtime 1, 距離當前時間第1天的文件,當前時間爲2011-03-01 22:31,往前推1天爲2011-02-28 22:31,因此以此爲時間點,24小時之內的時間爲2011-02-28 22:31~2011-03-01 22:31,因此這段時間內的文件會被選中出來:
E:\testpath>find ./ -mtime 1
./666.txt
-mtime -1 表示1天以內的,從距當前時間的1天爲2011-02-28 22:31,往右推移:
E:\testpath>find ./ -mtime -1
./
./666.txt
./777.txt
-mtime -2 表示2天以內的,從距當前時間的2天爲2011-02-27 22:31開始,往右推移:
E:\testpath>find ./ -mtime -2
./
./333.txt
./444.txt
./555.txt
./666.txt
./777.txt
下面是另一篇簡要介紹find命令的文章可供參考:
(2)find命令-mtime參數理解
原文鏈接地址:http://hi.baidu.com/ljm0211/item/d46591307a4985b9623aff33
find . -mtime N
實際上你應該這樣理解..
N * 24
+1 內表示 1 * 24 +24小時以外..
+0 才表示 0 * 24 +24小時以外
1 表示 1*24 + 24 到 24 之間..
0 表示 0*24 + 24 到 0 之間..
-1 表示 0*24 +24 內,甚至爲未來時間...
記住0也是自然數....