rsync --perms - 它有什么区别

rsync --perms - 它有什么区别

我在 MacOS 上,当我使用时,--perms 标志没有出现记录rsync -h。该标志有什么区别rsync --perms?据说它会保留文件权限,但为什么 rsync 默认情况下不这样做呢?

答案1

rsync -h选项是一个摘要,而不是完整的权威文档。

man -P 'less -p --perms$' rsync通过在 MacOS 的默认 rsync 上运行,我能够找到更多详细信息。rsync --perms将源权限复制到您所设置的目标权限。

从手册中:

总之:要为目标文件(旧的和新的)提供源权限,请使用 --perms。要为新文件提供目标默认权限(同时保持现有文件不变),请确保 --perms 选项关闭并使用 --chmod=ugo=rwX (这可确保启用所有非屏蔽位)。

用户可能只是不想将源文件的权限复制到目标文件。例如,如果将本地配置文件复制到远程服务器,则远程服务器可能具有不同的权限集。

rsync的支持上述用例--chmod。其他rsync选项如--executability--no-perms建议更多用例,在这些用例中,我们不能假设每个用户/用例都期望目标文件与源文件匹配。

不同之处在于--perms强制对目标的源权限,而默认行为 (no --perms) 取决于相关目录和/或进程的 umask 或 setgid。

从稍远的地方开始,相同的手动条目:

关闭此选项时,权限设置如下:

  • 现有文件(包括更新的文件)保留其现有权限,但“可执行性”选项可能仅更改文件的执行权限。
  • 新文件的“正常”权限位设置为使用接收端的 umask 设置屏蔽的源文件的权限,并且禁用其特殊权限位,除非新目录从其父目录继承 setgid 位。

相关内容