Find命令搭配atime/ctime/mtime時的日期寫法
find可謂是aix/linux上使用較多的維護用命令,但很多時候需要用到針對時間的搜索。本文主要對find中搭配atime、ctime和mtime的各種參數進行介紹。
www.2cto.com
atime:訪問時間(access time),指的是文件最後被讀取的時間,可以使用touch命令更改為當前時間;
ctime:變更時間(change time),指的是文件本身最後被變更的時間,變更動作可以使chmod、chgrp、mv等等;
mtime:修改時間(modify time),指的是文件內容最後被修改的時間,修改動作可以使echo重定向、vi等等;
以下例子應該很容易理解上述三個時間:某用戶在2013年1月5日00:00:00時,在/home下輸入ping www.baidu.com > 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為分鐘,注意只能以這兩個作為單位;
第三個參數為量,其中不帶符號表示符合該數量的,帶-表示符合該數量以後的,帶+表示符合該數量以前的。
注意: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