如何使rsync同步目录内容但不触及目录本身的权限?

如何使rsync同步目录内容但不触及目录本身的权限?

我想使用 rsync 将远程计算机上某个目录中的一组特定文件同步到本地目录。我运行类似的东西:

rsync -i -a --delete -f 'merge ~/files_list' x.x.x.x:/source/dir/ /target/dir/

该文件~/files_list包含要同步的文件名模式(带通配符)的特定列表,因为远程目录中有更多文件,而我只想复制特定子集。该--delete参数也很重要,因为我想从本地计算机删除远程计算机上不再存在的文件。

这按预期工作,除了一件事:它将 的所有者和权限更改为 的所有者和权限/target/dir/source/dir这在我的情况下是不可接受的。

如何摆脱这种行为?我不敢相信 rsync 没有参数只是简单地说“不要修改顶级目录属性”,因为它似乎是经常需要的东西......

*在我的情况下,放置after的明显解决方案/source/dir/不起作用,因为它有效地禁用--delete,并且目标上存在但源上不存在的文件不会被删除。

有什么办法解决这个问题吗?

编辑:因为我收到很多答案告诉我不要使用-a或明确说明--no-perms:我真的知道是什么-a意思,它就在那里故意。我确实想要具有一切同步(包括权限和所有权)目录内容。我只想跳过目录本身

我希望有一个开关rsync告诉“不要在最上面的目录”。确实应该如此。

答案1

添加 --no-perms --no-owner --no-group

相关内容