find -mtime +N/-N/N 的時間算法

(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也是自然數....

 


 

發佈了31 篇原創文章 · 獲贊 24 · 訪問量 84萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章