時常會遇到根據文件的時間屬性作操做的狀況,Linux下的文件相關的時間屬性有三個。atime,ctime, mtime。筆者也時常搞混,每次遇到都會人肉搜索,閒暇之際準備將這個知識完全搞懂。 看過權威文檔,寫的很容易產生誤解,如今根據本身的理解給出3個參數的解釋: ctime 文件內容及文件屬性的任何變化(change),ctime都會更新時間。 mtime 記錄最近一次文件內容變化(modify)的時間。 atime 記錄文件內容或文件屬性變化後的第一次訪問(access)時間。 ---這個須要注意,筆者踩過坑 修改文件內容後,哪些參數在變化?
當咱們往文件中追加內容後,咱們能夠看到mtime,ctime均更新了時間。 atime沒有發生變化。
當咱們修改文件屬性後,咱們能夠看到只有ctime更新了時間。 mtime,atime沒有發生變化。
當咱們使用tail,more,less等查看屬性或內容變動後的文件,此時atime也更新了時間。 而若是一直沒有訪問這個文件,這個文件的atime會一直不會更新。
一個廣泛的應用場景:
bash
有些業務須要定時刪除2個月以前的文件。此場景比較經常使用,應使用 find dir -mtime +60。而若是使用atime,ctime會遇到驚喜。 less