Linux

文件的時間戳、修改時間和創建時間

  • August 22, 2019

我只知道這一點ls -tls -f並對目錄下的文件和子目錄進行不同的排序。

  • 文件的時間戳、修改時間和創建時間有什麼區別?
  • 如何通過命令獲取和更改這些資訊?
  • 人們說一個文件比另一個文件“更新”的資訊是什麼?
  • 哪些資訊的改變不會使文件不同?

例如,我看到有人寫道:

預設情況下,rsync 程序只查看文件的大小和時間戳是否不同。它不關心哪個文件更新,如果它不同,它就會被覆蓋。您可以將“–update”標誌傳遞給 rsync,這將導致它跳過目標上的文件,如果它們比源上的文件新,但前提是它們是相同類型的文件。這意味著,例如,如果源文件是正常文件而目標文件是符號連結,則無論時間戳如何,目標文件都將被覆蓋。

順便說一句,這裡的文件類型是指普通文件和simlink,而不是pdf、jpg、htm、txt等類型嗎?

有3種“時間戳”:

  • 訪問 - 上次讀取文件的時間
  • Modify - 上次修改文件的時間(內容已被修改)
  • Change - 上次更改文件元數據的時間(例如權限)

要顯示此資訊,您可以使用statcoreutils 的一部分。

stat還會向您顯示更多資訊,例如設備、inode、連結等。

請記住,此類資訊高度依賴於文件系統和掛載選項。例如,如果您使用該noatime選項掛載分區,則不會寫入任何訪問資訊。

更改時間戳的實用程序是touch. 有一些參數可以決定更改哪個時間戳(例如,-a 表示訪問時間,-m 表示修改時間)並影響新給定時間戳的解析。有關man touch更多詳細資訊,請參閱。

touch可以與cp -u“僅當源文件比目標文件更新或目標文件失去時複製”)或創建空標記文件時變得方便。

引用自:https://unix.stackexchange.com/questions/2464