Network-Attached-Storage

批量更改修改/創建日期?

  • December 29, 2010

我最近為我的 NAS 購買了新硬碟。這意味著我要從 NAS 複製所有數據,對其進行升級,然後將數據移回。

我已經從 NAS 複製數據,但每個文件的修改/創建日期都已更改為複制時(今天)。

有沒有辦法,記住我有原始數據,批量更新復製文件上的修改/創建日期,而不必再次複製它們(我們正在談論一個 TB 的數據)?

touch可以更改訪問和修改時間。嘗試類似(未經測試):

find /path/to/source_files -exec touch --reference={} /path/to/dest/{} \;

如果目標路徑(複製的文件)被命名為其原始位置的路徑的超集,這可能會起作用。如果關係更複雜,您將需要對路徑進行一些操作。

關於 ctime,這是來自info touch

儘管“觸摸”提供了更改文件的兩個時間的選項——最後訪問和修改的時間——,實際上還有第三個選項:inode 更改時間。這通常被稱為文件的“ctime”。inode 更改時間表示文件的元資訊最後一次更改的時間。一個常見的例子是文件的權限發生變化。更改權限不會訪問文件,因此 atime 不會更改,也不會修改文件,因此 mtime 不會更改。然而,關於文件本身的某些東西已經改變,這必須在某處註明。這是 ctime 欄位的工作。這是必要的,例如,備份程序可以製作文件的新副本,包括新的權限值。修改文件 ctime 而不影響其他文件的另一個操作是重命名。在任何情況下,在正常操作中,使用者都不可能將 ctime 欄位更改為使用者指定的值。

引用自:https://serverfault.com/questions/216922