1. 程式人生 > >Linux下的 檔案的三個時間引數

Linux下的 檔案的三個時間引數

Linux下檔案三個時間引數:

(1)modification time(mtime):內容修改時間

    這裡的修改時間指的是檔案的內容發生變化,而更新的時間。

(2)change time(ctime):狀態修改時間

    這裡的修改時間指的是檔案的屬性或者許可權發生變化,而更新的時間。

(3)access time(atime):最後訪問時間

    這裡的訪問時間是指檔案被讀取,而更新的時間。

在Linux下操作命令分別為:

ls -l    獲取檔案最後一次內容修改的時間(modification time(mtime))

ls -lu   獲取檔案最後一次訪問的時間(change time(ctime)

)

ls -lc   獲取檔案最後一次狀態的改變時間(access time(atime))

在Linux下檔案沒有建立時間這個概念,若檔案從建立後不曾修改過則可認為建立時間=修改時間,若檔案建立後狀態也不曾改變過則可認為建立時間=改變時間,若檔案建立後不曾被讀取過則可認為建立時間=訪問時間。但是,上述情況基本上是不可能的,也就是說幾乎不可能獲取到檔案的建立時間。

下面我在Linux下驗證下這三個檔案時間

首先,建立一個test.c 的檔案,並獲取他的三個時間引數

wKioL1dIaaWi4BcnAAAvdIqXKxI467.png

剛開始建立的檔案三個時間引數是一樣的。

使用vim編輯檔案,在test.c中新增內容

wKioL1dIapjTiZI9AAA01IqQFAg256.png

此時我們發現檔案的三個時間都發生了變化,這是因為我們在修改檔案內容的時候相當於訪問檔案,在新增內容後文件的屬性也發生了變化(大小、塊數、時間資料

),所以檔案的三個時間都發生了改變。

此時我們使用vim 但不向檔案內新增內容,相當於訪問

wKiom1dIamjAMewmAAAz-ehZEwA931.png

此時我們發現只有檔案的訪問時間變化了,這印證了通過vim編輯檔案實際上是先訪問了檔案的說法。另外也說明只要其內容沒有發生變化,那麼檔案的修改時間也保持不變。

另外我們測試檔案屬性變化後的檔案的三個時間

wKioL1dIbfGz2BSfAAA_n0MqNug730.png

我們發現此時只有檔案的狀態時間發生了變化。

Linux下的find指令