我有一些文件想要同步到 Linux 服务器。唯一的问题是它会将所有权和组重置为当前用户和组。
不幸的是,选项--owner、--group 和--archive 有点不可行,因为源是 Windows 机器。(它的所有权在服务器上没有意义)
有什么方法可以保持目的地所有权不变?
我正在使用的命令(最小示例):
rsync SRC $remote:DEST
答案1
只需使用--inplace
选项:
rsync --inplace SRC $remote:DEST
正确地不会改变目标所有权(或权限),无论源是什么。
文档:
- 到位
当文件数据需要更新时,此选项会更改 rsync 传输文件的方式:rsync 不会采用默认方法,即创建文件的新副本并在完成后将其移动到位,而是将更新的数据直接写入目标文件。
[警告:更改正在使用的文件时可能会导致问题]
有关详细信息,请参阅 rsync文档页面。
答案2
尝试rsync -azvr something somwhere:/location/
。
答案3
识别远程端的用户和组。例如用户“user1”和组“user1”。
在 rsync 命令中添加“--chown user1:user1”
或者,如果您的 rsync 版本不支持此功能,请在远程运行“chown -R user1:user1 *”,在目标文件树的最高文件夹中,这将以递归方式将所有内容重新归还给 user1。(警告:此语法也会更改当前文件夹中的所有内容)