如何告诉rsync不要触及目标目录的权限?

我正在使用rsync同步从一台机器目录到另一台,但我遇到了以下问题:目标目录权限被改变。

rsync -ahv defaults/ root@hostname:~/ 

问题是,在这种情况下, defaults forlder的权限和所有权将被分配给目标文件夹。

我想保留文件和子目录的权限,但不是源目录本身。

此外,我不想从目标中删除任何现有的文件(但是如果需要更新它们),但我认为目前的设置已经可以在这方面。

我怎样才能做到这一点?

如果你想排除defaults目录的权限被改变,你将不得不从字面上包含在命令中(因为你显然想维护你正在复制的所有东西的权限)。 你可以这样做:

 rsync -ahv defaults/* root@hostname:~/ 

或者,如果您的文件或目录以defaults内的圆点开头,并且假定您使用的是bash:

 shopt -s dotglob rsync -ahv defaults/* root@hostname:~/