Linux下文件的-atime -mtime -ctime

https://www.cnblogs.com/qiaopei/p/5515189.html

Linux下的文件關於時間的信息有三個:


最近訪問時間 access time (-atime)、最近更改時間 modify time (m) 和 最近狀態改動時間 change time(-ctime),創建時間那一項爲空白,證實了Linux系統下是無法查看文件的創建時間的。

atime  : 它代表着最近一次訪問文件的時間,顯示一個文件的內容或者運行一個shell腳本會更新文件的atime。可用ls -lu命令查看。有一個要注意的就是,在kernel版本2.6.30之前,linux的核心開發人員針對Ext3/Ext4文件系統的性能進行了討論,其中包括atime。在kernel 2.6.30之前,文件系統中默認會及時的更新atime,而在此之後的版本里,只有發生以下三種情況之一纔會更新atime

    1.   將分區mount的掛載的時候指定採用非relatime方式
    2.   atime小於ctime或者小於mtime的時候
    3.   本次的access time和上次的atime超過24個小時

  mtime : 它代表着最近一次文件內容被修改的時間。可用ls -l 命令查看。

  ctime  : 它代表着最近一次文件狀態改變的時間 ,是status change time,是在寫入文件、更改所有者、權限或鏈接設置時隨 Inode 的內容更改而更改,即文件狀態最後一次被改變的時間。可用ls -lc 命令查看。

ctime是指 inode 的改變。那既然我們對文件的內容進行了更改,那它的mtime已經改變,所以ctime也就會改變咯。也就是說只要mtime改變,ctime就一定會改變。那怎樣使得ctime改變而其他不變呢?我們可以通過改變文件的權限、用戶、所屬組等來實現。

Linux爲我們提供了一個簡便的查詢幾天前或者幾天之內被改過或者訪問過的文件,那就是 +n 和 -n。下面以 -mtime 舉例說明:

  -mtime n : n爲數字,意思爲在n天之前的“一天之內”被更改過內容的文件

  -mtime +n : 列出在n天之前(不含n天本身)被更改過內容的文件名

  -mtime -n : 列出在n天之內(含n天本身)被更改過內容的文件名

例如:將系統24小時內更改過內容的檔案列出 :find / -mtime 0

找 “5天之內被更改過的檔案名(5-6 那一天的檔案名)”  find / -mtime -5 ,

找“5天前的那一天被更改過的檔案名(小於等於 5 天內的檔案名)”   find / -mtime 5 , -5 代表,5 則是代表 。

找“5天之前被更改過的檔案名(大於等於 6 天前的檔案名”    find / -mtime +5。

我們可以看出有沒有 “+,-”的差別是很大的。下面用圖來說明一下:







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章