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

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

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

rsync -ahv defaults/ root@hostname:~/

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

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

此外,我不想从目标中删除任何现有文件(但在需要时更新它们),但我认为当前设置已经没问题。

我怎样才能做到这一点?

答案1

如果要排除defaults目录的权限更改,则必须不是将其包含在命令中(因为您显然希望保留所复制所有内容的权限)。因此,您可以执行以下操作:

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

或者,如果您有以点开头的文件或目录defaults,并且假设您使用 bash:

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

相关内容