在 Mac OS X 上使用 rsync 同步資料夾而不覆蓋同名文件

在 Mac OS X 上使用 rsync 同步資料夾而不覆蓋同名文件

我想同步兩個目錄的內容。

  • 如果兩個檔案具有相同名稱但大小不同,則不覆蓋但建立副本
  • 如果兩個檔案具有相同的名稱和大小,則不會重複。
  • 遞歸地工作

到目前為止,我發現以下命令可能有效

 $ rsync -varE --progress ~/folder /volumes/server/folder

但我不完全確定該-E標誌的作用。它是由 bananica.com 上的用戶建議的,但在手冊中找不到它的描述。這能成功滿足我的要求嗎?

答案1

-E 實際上保留了 OS X 上的擴充屬性,但 -a (--archive) 意味著 -p (--perms),而 -p (--perms) 意味著 --executability。

-b (--backup) 在通常會被覆蓋的文件末尾加上波浪號:

rsync -ab ~/folder /Volumes/server/

-b --suffix _old將 file.txt 重新命名為 file.txt_old

預設情況下,rsync 會比較檔案大小和修改時間。 --size-only 只比較大小。 -c 比較校驗和,但速度較慢。

相關內容