我正在使用 rsync 将目录从一台机器同步到另一台机器,但我遇到了以下问题:目标目录权限被更改。
rsync -ahv defaults/ root@hostname:~/
Run Code Online (Sandbox Code Playgroud)
问题是,在这种情况下,defaults
文件夹的权限和所有权将分配给目标文件夹。
我确实想保留文件和子目录的权限,但不保留源目录本身的权限。
此外,我不想从目标中删除任何现有文件(但在需要时更新它们),但我认为当前设置已经可以了。
我怎样才能做到这一点?
如果您想排除defaults
目录更改其权限,则必须从字面上不将其包含在命令中(因为您显然希望维护您正在复制的所有内容的权限)。因此,您可以这样做:
rsync -ahv defaults/* root@hostname:~/
Run Code Online (Sandbox Code Playgroud)
或者,如果您的文件或目录以 . 开头defaults
,并假设您使用的是 bash:
shopt -s dotglob
rsync -ahv defaults/* root@hostname:~/
Run Code Online (Sandbox Code Playgroud)