在 bash 中同步兩個本機資料夾

在 bash 中同步兩個本機資料夾

我的主目錄中有一個大資料夾“X”,並且在閃存驅動器上有一個過時的副本 - rm Y; cp X YY。

答案1

還有很多屬性可供選擇同步比之前的答案提到的。你應該自己調查一下:

man rsync

但對於你的問題我建議:

rsync -a --delete X Y

這樣,接收者 (Y) 將刪除它所擁有的 X 以外的任何檔案。錯誤地使用 root 可以輕鬆殺死你的系統...:)

答案2

看一眼同步(1)。它的目的幾乎完全是你想要的。

rsync -av X Y

它支援透過自己的協定或 ssh 進行遠端複製,但也可以在本地使用。

根據您想要的具體行為,您可能還想傳遞該--update選項。這將告訴 rsync 不要覆蓋目標上已存在且比來源中的檔案新的檔案。

如果您想要刪除額外的檔案(即存在於 Y 中但不存在於 X 中的檔案),您可以新增該--delete選項。

答案3

你可能會使用Fitus/Zaloha.sh。它首先計算必要的同步操作,將它們呈現給您,要求確認,然後執行它們:

$ Zaloha.sh --sourceDir="X" --backupDir="Y"

答案4

我認為您在選項 -u (更新)中尋找的一些功能實際上存在於此選項中:

“--ignore-existing”-跳過更新接收器上存在的文件

相關內容