Find–atime –ctime –mtime的用法與區別總結
一、atime、ctime與mtime
atime是指access time,即檔案被讀取或者執行的時間,修改檔案是不會改變access time的。網上很多資料都聲稱cat、more等讀取檔案的命令會改變atime,但是我試驗時卻發現使用cat、more時atime沒有被修改。這個問題需要另外做研究探討。
ctime即change time檔案狀態改變時間,指檔案的i結點被修改的時間,如通過chmod修改檔案屬性,ctime就會被修改。
mtime即modify time,指檔案內容被修改的時間。
使用stat可以檢視檔案的atime、ctime、mtime。
例:
stat ~/.bashrc
File:`/home/user_00/.bashrc'
Size: 1177 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode:663962 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1003/ user_00) Gid:( 100/ users)
Access: 2009-12-21 10:45:35.000000000 +0800
Modify: 2009-12-21 10:45:35.000000000 +0800
Change: 2009-12-2110:45:35.000000000 +0800
也可以使用ls檢視檔案的atime、ctime、mtime。
通常情況下我們使用的ls –l ~/.bashrc指示的是檔案的modify time。
ls –lu ~/.bashrc 或者ls –l –time=atime~/.bashrc指示的是檔案的access time
ls –lc ~/.bashrc 或者ls –l –time=ctime~/.bashrc 指示的是檔案的change time
使用touch可以改變這三個時間。關於使用touch改變atime、ctime、mtime的方法,此處不做介紹。
二、find . –mtime中的引數n
find . –mtime n中的n指的是24*n, +n、-n、n分別表示:
+n: 大於n
-n: 小於n
n:等於n
但是man find裡這樣的解釋還是比較令人費解的,不如直接看find . -mtime 中的用法
find . –mtime n: File waslast modified n*24 hours ago.
最後一次修改發生在距離當前時間n*24小時至(n+1)*24 小時
find . –mtime +n:
最後一次修改發生在n+1天以前,距離當前時間為(n+1)*24小時或者更早
find . –mtime –n:
最後一次修改發生在n天以內,距離當前時間為n*24小時以內