liunx的三個時間atime,mtime,ctime詳細說明與使用場景

2022-10-06 06:01:42

導航:
一、檔案與資料夾三個時間:atime,mtime,ctime的含義
二、ll命令檢視檔案時間
三、stat命令檢視檔案的時間
四、測試建立/修改檔案的時間
五、常用命令關於檔案時間相關

- - - - - - - - - - 分割線 - - - - - - - - - -

一、檔案與資料夾三個時間:atime,mtime,ctime的含義
1.含義
atime(Access Time):檔案最近被存取時間
mtime(Modify Time):檔案最近內容修改時間
ctime(Change Time):檔案最近許可權和屬性修改時間

2.檔案的觸發time修改的情況
atime(Access Time):在讀取檔案或者執行檔案時更改的任何對inode的存取都會使此處改變
mtime(Modify Time):在寫入檔案時隨檔案內容的更改而更改的
ctime(Change Time):在寫入檔案、更改所有者、許可權或連結設定(更改狀態)時隨 Inode 的內容更改而更改的

3.資料夾觸發time修改的情況
atime(Access Time):讀取檔案或者執行檔案時更改的(cd不會ls會改變)
mtime(Modify Time):在資料夾中有檔案的新建才會改變,注意使用vi在資料夾內新建檔案即使退出時也會變化mtime,而只更改資料夾內檔案內容不會修改資料夾的mtime
ctime(Change Time):ctime 基本同檔案的ctime,其體現的是inode的change time

4.注意事項,mtime與ctime
mtime的改變必然導致ctime的改變,但是ctime不一定導致mtime的更改

 

二、stat命令檢視檔案的時間

stat test001.txt

 

三、ll命令檢視檔案時間(對照stat命令可驗證)

1.預設顯示mtime

ll test001.txt  #預設顯示mtime

2.展示ctime

ll --time=ctime test001.txt #展示ctime

 3.展示atime

ll --time=atime test001.txt #展示atime

 

四、測試建立/修改檔案的時間

假定目前的時間是:2022-10-05 13:15:40

date "+%Y-%m-%d %H:%M:%S"

1.建立檔案後測試,檔案atime、ctime、mtime均一樣

touch test001.txt
stat test001.txt

 2.修改檔案後檢視,檔案atime不變,ctime、mtime更新

echo 123 > test001.txt
stat test001.txt

 3.更改檔案屬主後:檔案atime、mtime不變,ctime更新

chown -R root:root test001.txt
stat test001.txt

 4.建立資料夾,檔案atime、ctime、mtime均一樣

mkdir test001mdr
stat test001mdr

 5.資料夾內新建檔案,資料夾atime不變,ctime與mtime均發生改變

vi test001mdr/test001.txt
stat test001mdr

 6.修改資料夾的屬主,資料夾的atime、mtime不變,ctime更新

chown -R root:root ./test001mdr
stat test001mdr

 

五、常用命令關於檔案時間相關(24h為一天前時間節點,0為當前時間)

1.在當前目錄下查詢3天內修改過的檔案(72h~0)

find .  -mtime -3 #查詢3天內修改過的檔案

2.在當前目錄下查詢1天記憶體取過的檔案(24h~0)

find . -atime -1 #查詢1天記憶體取過的檔案

3.查詢50-100 天修改過的檔案(100d~50d)

find / -mtime +50 -mtime -100 #查詢50-100 天修改過的檔案

4.查詢過去 1 小時內更改過的檔案(60min~0)

find . -mmin -60 #過去1小時內更改過的檔案

5.查詢前一天修改過的檔案(48h~24h)

find . -mtime 1 #查詢前一天修改過的檔案(48h~24h)

6.查詢一天前修改過的檔案(~48h)

find . -mtime +1 #查詢一天前修改過的檔案(~48h)

7.查詢早於指定日期修改的檔案(~=day)

find .  -newermt 2022-10-04  #查詢早於指定日期(包含)修改的檔案

8.查詢24小時內修改的檔案(24h~0)

find .  -newermt '-24hours'  #查詢24小時內修改的檔案

9.查詢10分鐘之內修改過的檔案(10min~0)

find /home/ -type f -newermt '-10 minutes' #查詢10分鐘之內修改過的檔案

10.查詢1天之內修改過的檔案(24h~0)

find . -newermt '1 day ago' #查詢1天之前到現在修改的檔案

11.查詢昨天到現在修改的檔案-同上(24h~0)

find .  -newermt 'yesterday' #查詢昨天到現在修改的檔案