天天看點

Find指令搭配atime/ctime/mtime時的日期寫法

find可謂是aix/linux上使用較多的維護用指令,但很多時候需要用到針對時間的搜尋。本文主要對find中搭配atime、ctime和mtime的各種參數進行介紹。

atime:通路時間(access time),指的是檔案最後被讀取的時間,可以使用touch指令更改為目前時間;

ctime:變更時間(change time),指的是檔案<b>本身</b>最後被變更的時間,變更動作可以使chmod、chgrp、mv等等;

mtime:修改時間(modify time),指的是檔案<b>内容</b>最後被修改的時間,修改動作可以使echo重定向、vi等等;

以下例子應該很容易了解上述三個時間:某使用者在2013年1月5日00:00:00時,在/home下輸入ping www.baidu.com &gt; ping.log;5秒鐘後,該使用者使用ctrl+C強制關閉該指令;5秒鐘後,使用cat ping.log檢視。則ping.log的ctime為2013-01-05 00:00:00;mtime為2013-01-05 00:00:05;atime為2013-01-05 00:00:10。

這三個參數了解後,我們就可以使用find找到某個時刻進行過某類操作的檔案集合。

find . {-atime/-ctime/-mtime/-amin/-cmin/-mmin} [-/+]num

第一個參數,.,代表目前目錄,如果是其他目錄,可以輸入絕對目錄和相對目錄位置;

第二個參數分兩部分,前面字母a、c、m分别代表通路、變更、修改,後面time為日期,min為分鐘,注意隻能以這兩個作為機關;

第三個參數為量,其中不帶符号表示符合<b>該數量</b>的,帶-表示符合<b>該數量以後</b>的,帶+表示符合<b>該數量以前</b>的。

注意:find中對于時間的推算均為:

1、到......為止用+号,從......開始用-号,一個時間機關内的不帶符号;

2、數字代表往前偏移量;

3、目前到往後的一個時間機關為基準0;-0就是下限機關;+0就是上限機關。

假設目前時間是2013年1月5日00:00:00分,則:

1、尋找2013年1月5日00:00:00到2013年1月5日23:59:59被通路過的檔案:時間機關是day,查找機關時間内的不帶符号,目前無往前偏移,是以查詢語句為:

find . -atime 0

2、尋找2013年1月4日23:50:00到2013年1月4日23:55:00被修改過的檔案:時間機關是min,下限從目前往前偏移10min,上限從目前往前偏移5min,是以查詢語句為:

find . -mmin -10 -mmin +5

如果上述描述感覺生澀難懂,可參考文首的參考文檔,裡面有圖文并茂的解析。

參考文檔:http://www.oracleblog.org/study-note/how-to-calculate-find-mtime/

本文轉自 gole_huang 51CTO部落格,原文連結:http://blog.51cto.com/golehuang/1108124

繼續閱讀