使用 rsync 保留权限

pro*_*eek 76 permissions rsync

假设我在 LINUX 中有一个文件 a.txt 的权限为 0664。当我使用 rsync 将文件复制到我的 Mac 时rsync -r -t -v LINUX MAC,文件的权限变为 0644。

使用 rsync 时如何保留文件的权限?-g 选项不起作用。

jmt*_*mtd 104

你想要 -p 标志:

    -p, --perms                 preserve permissions
Run Code Online (Sandbox Code Playgroud)

我倾向于总是使用 -a 标志,它是 -p 和其他几个有用标志的集合:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
Run Code Online (Sandbox Code Playgroud)

两者都直接取自rsync 联机帮助页

  • 但是,如果目标计算机的用户名与源计算机上的文件所有者不相同,它是否会保留权限?(例如,我在源上有 `vmail` 用户,但在目标上没有,它在恢复到源时是否保留用户名?) (6认同)
  • @WM 你问这个问题已经有几年了,但我发现 `rsync` -a` 开关还包括执行“保留所有者”和“保留组”选项,这需要超级用户。另外,您可能需要考虑“--numeric-ids”,它不会映射用户名/组名 (6认同)