Linux
文件的時間戳、修改時間和創建時間
我只知道這一點
ls -t
,ls -f
並對目錄下的文件和子目錄進行不同的排序。
- 文件的時間戳、修改時間和創建時間有什麼區別?
- 如何通過命令獲取和更改這些資訊?
- 人們說一個文件比另一個文件“更新”的資訊是什麼?
- 哪些資訊的改變不會使文件不同?
例如,我看到有人寫道:
預設情況下,rsync 程序只查看文件的大小和時間戳是否不同。它不關心哪個文件更新,如果它不同,它就會被覆蓋。您可以將“–update”標誌傳遞給 rsync,這將導致它跳過目標上的文件,如果它們比源上的文件新,但前提是它們是相同類型的文件。這意味著,例如,如果源文件是正常文件而目標文件是符號連結,則無論時間戳如何,目標文件都將被覆蓋。
順便說一句,這裡的文件類型是指普通文件和simlink,而不是pdf、jpg、htm、txt等類型嗎?
有3種“時間戳”:
- 訪問 - 上次讀取文件的時間
- Modify - 上次修改文件的時間(內容已被修改)
- Change - 上次更改文件元數據的時間(例如權限)
要顯示此資訊,您可以使用
stat
coreutils 的一部分。
stat
還會向您顯示更多資訊,例如設備、inode、連結等。請記住,此類資訊高度依賴於文件系統和掛載選項。例如,如果您使用該
noatime
選項掛載分區,則不會寫入任何訪問資訊。更改時間戳的實用程序是
touch
. 有一些參數可以決定更改哪個時間戳(例如,-a 表示訪問時間,-m 表示修改時間)並影響新給定時間戳的解析。有關man touch
更多詳細資訊,請參閱。
touch
可以與cp -u
(“僅當源文件比目標文件更新或目標文件失去時複製”)或創建空標記文件時變得方便。