Linux 檔案時間戳記說明:atime、mtime 和 ctime
什麼時候「改變」不等於「修改」?當我們談論 Linux 檔案的時間戳記時。在本指南中,我們將解釋系統如何更新它們以及如何自行修改它們。
atime、mtime、ctime 的區別
每個Linux檔案都有三個時間戳記:存取時間戳記(atime)、修改時間戳記(mtime)和更改時間戳(ctime)。
訪問時間戳記是上次讀取檔案的時間。這意味著有人使用程式查看文件的內容或從中讀取一些值。文件中沒有任何內容被修改或新增。數據已引用但未更改。
修改時間戳表示上次修改文件內容的時間。程式或進程編輯或操作檔案。 「修改」表示檔案中的某些內容已被修改或刪除,或已新增資料。
更改的時間戳並不表示對文件內容的更改。相反,它是與文件相關的元資料發生更改的時間。例如,檔案權限變更將更新變更的時間戳記。
標準Linux ext4檔案系統也在其內部檔案系統結構中為檔案建立時間戳記分配空間,但這尚未實現。有時,這個時間戳會被填滿,但你不能依賴其中的值。
詳細時間戳
Linux 時間戳包含數字而不是日期和時間。這個數字是秒前的數字 Unix時代,即 00 年 00 月 00 日午夜 (1:1970:XNUMX), 協調世界時 (UTC)。 Linux 時間戳中忽略了閏秒,因此它們與即時完全不同。
當Linux需要顯示時間戳記時,它將秒數轉換為日期和時間。這使得人類更容易理解。電腦檢視檔案的位置和時區指示電腦將秒數轉換為日期和時間。它還確保月份使用正確的語言。
那麼,一個時間戳可以儲存多少秒呢?很多——準確地說是 2,147,483,647。這是一個很大的數字,但這足夠嗎?如果將其添加到 Unix 時代,然後將其轉換為日期和時間,則會得到 19 年 2038 月 03 日星期二凌晨 14:07:XNUMX。在此之前我們需要一個不同的時間戳系統。
顯示時間戳
當-l(長列表)選項與ls一起使用時,如下所示, 可以看到修改後的時間戳記:
ls -l dp.c
如果您想查看訪問時間戳,請使用 -lu(訪問時間)選項,如下所示:
ls-lu dp.c
最後,要查看更改的時間戳,可以使用-lc(更改時間)選項;寫下以下內容:
ls -lc dp.c