使用 rsync 時如何避免不必要的刪除和重新複製移動的資料夾?

使用 rsync 時如何避免不必要的刪除和重新複製移動的資料夾?

我讀到 rsync 無法檢測移動的資料夾,只需刪除它們並將其重新複製到新的資料夾結構中即可。

由於我對主副本所做的唯一更改是簡單地引入一個頂級資料夾來包含我的原始文件,即:

folder1
folder2
folder3

進入

top\folder1
top\folder2
top\folder3

我想知道是否可以在備份副本中手動執行相同的操作,以某種方式修復兩個頂級資料夾的修改時間,以便對 rsync 的後續呼叫能夠正常運作。

這行得通嗎?如果是這樣,怎麼辦?如果沒有,解決這個問題的建議方法是什麼?或者我應該先使用不同的參數來執行 rsync ? (而不是rsync -a --delete /mnt/SRC /mnt/DEST我目前正在使用的)

這些目錄非常大,因此我想盡可能避免不必要的重新複製。

答案1

是的,您可以手動在備份副本中進行移動,然後執行 rsync。您不需要改變修改時間;讓 rsync 來做這件事。

像這樣的重命名很難自動檢測,因此手動複製它是通常的解決方案。

答案2

如果您願意,您也不需要手動更新文件的修改時間。

如果您並不特別關心鏡像新的目錄結構,而只需要文件,您也可以 rsync --(options) /mnt/SRC/newdir/ /mnt/DEST。請注意 SRC 一側的額外斜杠,否則您最終將重新複製所有內容。

答案3

建議的解決方案這裡成功了:

rsync -vrt --size-only /src/ /dest/

--size-only 選項會導致rsync忽略時間戳,而 -t(保留修改時間)會導致rsync修復目標副本中任何不一致的修改時間。

相關內容