我有一个 rsync 设置,可以将文件从本地开发计算机传输到生产 Web 服务器。在生产服务器上,storage
目录需要为775。
rsync 完成后,它会更改为 755
答案1
我添加这个答案是因为接受的答案没有为我做所需的事情(使用 -p 不会阻止 rsync 更改目标路径上的权限)!
事实上,这里合适的选项(不改变现有内容的权限)是--no-perms
rsync --no-perms src/ /dest
以下摘自该rsync
男子:
总之:要为目标文件(旧的和新的)提供源权限,请使用 --perms。要为新文件提供目标默认权限(同时保持现有文件不变),请确保 --perms 选项关闭并使用 --chmod=ugo=rwX (这可确保启用所有非屏蔽位)。
答案2
从man rsync
:
-p, --perms preserve permissions
假设您想要保留所有元数据而不仅仅是权限,您可能需要使用-a
with -HAX
,这意味着-p
。
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)