使用 rsync 保留目錄/資料夾上的修改日期

使用 rsync 保留目錄/資料夾上的修改日期

我正在嘗試備份故障的硬碟,rsync 是理想的選擇,因為它具有進度指示器以及停止和恢復功能等功能。我遇到的一個問題是,雖然保留檔案日期修改屬性,但目錄獲得新的日期屬性。這會導致問題,因為我按日期對許多文件進行排序,以便我知道最近添加的內容。是否可以使用 rsync 保留目錄日期修改屬性:

sudo rsync -avhX --progress --info=progress2 /mnt/failing/ /mnt/new/

-t(包含在 -a 中)選項保留檔案屬性,但不提及目錄。為了成功保留某些屬性,/mnt/new 分區的所有權/權限是否有任何特殊要求?

答案1

目錄的最後修改時間由 保存-a,但只有在 rsync 完成後才能看到。它不會嘗試為不斷更新新檔案的目錄設定時間。

你可以自己測試一下。建立目錄並將其日期設為昨天,然後使用 rsync 複製它:

$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2  40 Nov  4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2  40 Nov  3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

d2/d1 目錄有昨天的日期。我們可以覆蓋它並查看 rsync 是否修復了問題:

$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

rsync -i顯示 d2/d1 上的時間戳錯誤並修復它。

答案2

我最終寫了一篇關於這個問題的文章,以防它對某人有用。實際上,元資料的每一位都可以使用 Rsync 進行保存,如帖子中所述。

在 Arch Linux 中以 Rsync 取代儲存驅動器

這是同步所有內容的片段:

sudo rsync -avihXP --info=progress2 --stats --dry-run /mnt/disk?/ /mnt/temp/

答案3

rsync -avz為我做一切
-v用於詳細
-a用於存檔模式(類似於 -rlptgoD)
-z用於使用壓縮

相關內容