在 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 比较校验和,但速度较慢。

相关内容