????????在 Linux 系統中,文件的這三個時間戳(
Access
、Modify
、Change
)分別表示不同的文件狀態變更時間,具體含義如下:
1. Access Time (Access
)
-
含義:文件最后一次被訪問的時間(讀取內容或執行)。
-
觸發條件:
-
使用?
cat
、less
?查看文件內容。 -
程序讀取文件(如腳本調用、數據庫查詢)。
-
-
示例:
cat image.png # 會更新 Access Time
2. Modify Time (Modify
)
-
含義:文件內容最后一次被修改的時間。
-
觸發條件:
-
文件內容被編輯(如?
vim
?修改后保存)。 -
文件被覆蓋或追加數據(如?
echo "text" >> file
)。
-
-
注意:僅當文件內容變化時更新,權限/屬性變更不影響。
-
示例:
echo "new data" > image.png # 會更新 Modify Time
3. Change Time (Change
)
-
含義:文件元數據(metadata)最后一次被修改的時間。
-
觸發條件:
-
修改權限(
chmod
)、所有者(chown
)。 -
修改硬鏈接數量、文件大小等屬性。
-
文件內容修改也會間接更新此時間(因為文件大小等元數據變化)。
-
-
示例:
chmod 644 image.png # 會更新 Change Time
如何查看這些時間?
使用?stat
?命令查看完整信息:
stat image.png
輸出示例:
File: image.pngSize: 1024 Blocks: 8 IO Block: 4096 regular file
Access: 2025-04-20 22:40:25.521868818 +0800
Modify: 2025-04-20 22:40:25.521868818 +0800
Change: 2025-04-20 22:40:25.521868818 +0800Birth: 2025-04-20 22:40:25.521868818 +0800 # 部分系統支持創建時間(Birth)
關鍵區別總結
時間戳 | 觸發條件 | 查看命令 |
---|---|---|
Access | 讀取文件內容 | stat -x ?或?ls -lu |
Modify | 修改文件內容 | stat -x ?或?ls -l |
Change | 修改元數據(權限/屬性) | stat -x ?或?ls -lc |
常見問題
-
為什么修改內容后?
Change
?時間也更新了?
因為文件大小、inode 等元數據隨之變化,觸發了?Change
?時間更新。 -
如何僅更新?
Access
?時間而不修改文件?
使用?touch -a image.png
。