如何將一個(大)目錄複製到另一個目錄上,僅更改不同的檔案?

如何將一個(大)目錄複製到另一個目錄上,僅更改不同的檔案?

我有目錄a和目錄b。他們很大。 b 與 a 幾乎相同。 「幾乎」意味著有 4-5 個檔案不同,但我不知道它們是哪一個。我想將 b 複製到 a 上,但只複製不同的檔案。我在狂歡。

(不,我不能簡單地刪除 a 並將其替換為 b,因為 1)a 是受版本控制的 2)完整副本(或 mv)會花費太多時間。我只想複製不同的文件)。

答案1

你可以用來rsync做到這一點,我使用的命令是rsync -tr "folder to copy from" "folder to copy to"

例如rsync -tr /home/me/stuff/* /home/me/otherstuff/

答案2

也可以使用 good old 來做到這一點cp

感謝 srcspider 提醒我使用-T

cp -ruT old-dir new-dir

答案3

另一個不錯的選擇是 Unison (http://www.cis.upenn.edu/~bcpierce/unison/),特別是如果沒有真正的「來源」和「目的地」。每個目錄都是一個根目錄,Unison 會同步它們並保留元資料以供將來同步。它提供了命令列和 GUI 選項,也可以透過 cron 輕鬆安排。

我用它來將 Dropbox 備份到無法執行 Dropbox 用戶端的本機 NAS 裝置。

答案4

您可以比較這兩個目錄。

diff -r 目錄1 目錄2

它會向您顯示不同的文件列表

相關內容