rsync不要更改目标目录的文件及所属权限
如果你希望使用 rsync
同步文件到目标目录,但不希望更改目标目录中现有文件的权限和所有权,你可以通过以下方式实现:
方案 1: 使用 --ignore-existing
选项
--ignore-existing
选项会确保 rsync
只同步源中不存在于目标中的文件,而不更新目标中已经存在的文件。这可以帮助避免改变目标目录中文件的权限和属性。
shCopy Code
rsync -av --ignore-existing source/ destination/
方案 2: 使用 --update
选项
--update
选项只会更新目标中比源文件旧的文件,不会覆盖目标中已经较新的文件。这样可以避免对目标中现有文件的权限或其他属性的更改。
shCopy Code
rsync -av --update source/ destination/
方案 3: 使用 --no-perms
和 --no-owner
选项
如果你希望防止 rsync
更改目标目录中文件的权限或所有权,可以结合使用 --no-perms
和 --no-owner
选项。这样,文件的权限和所有权不会在目标目录中被修改。
shCopy Code
rsync -av --no-perms --no-owner source/ destination/
方案 4: 使用 --chmod
选项(对文件权限进行特定控制)
如果你希望对文件的权限进行特定控制(例如只设置特定权限),你可以使用 --chmod
选项。这个选项允许你设置新文件和目录的权限,但是不会影响目标目录中现有文件的权限。
shCopy Code
rsync -av --chmod=ugo-x source/ destination/
综合示例
如果你希望将源目录的内容同步到目标目录,但不更改目标目录中现有文件的权限和所有权,你可以使用以下命令:
shCopy Code
rsync -av --ignore-existing source/ destination/
这个命令会同步源目录中的文件到目标目录,但只会添加目标目录中不存在的文件,不会修改目标目录中已存在的文件及其权限。
总结
这些选项提供了不同的方式来控制 rsync
如何处理目标目录中的文件。选择适合你需求的选项可以帮助你避免不必要的文件权限和所有权更改。