在 Mac OS X 上使用 rsync 同步文件夹而不覆盖同名文件

Ada*_*m-E 3 backup terminal rsync macos

我想同步两个目录的内容。

  • 如果两个文件名称相同但大小不同,则不覆盖但创建副本
  • 如果两个文件具有相同的名称和大小,则不进行复制。
  • 递归工作

到目前为止,我发现以下命令可能有效

 $ rsync -varE --progress ~/folder /volumes/server/folder
Run Code Online (Sandbox Code Playgroud)

但我不完全确定-E标志的作用。这是由 bananica.com 上的用户建议的,但在手册中看不到它的描述。这会成功完成我的要求吗?

Lri*_*Lri 7

-E 实际上保留了 OS X 上的扩展属性,但 -a (--archive) 暗示 -p (--perms) 暗示 --executability。

-b (--backup) 在通常会被覆盖的文件末尾添加一个波浪号:

rsync -ab ~/folder /Volumes/server/
Run Code Online (Sandbox Code Playgroud)

-b --suffix _old 将 file.txt 重命名为 file.txt_old

rsync 默认比较文件大小和修改时间。--size-only 只比较大小。-c 比较校验和,但速度较慢。