Answers:
rsync允许您指定触发包含或排除文件和目录的模式。我认为您想使用以下方式:
rsync -a -f '- /*/*/' /dirA/ host:/dirB/
说明:
-a触发归档模式,激活“符号链接,设备,属性,权限,所有权等”的递归和保留man rsync。-f是的缩写--filter=,它添加了文件过滤规则。
- 表示这是一个排除模式。/意味着模式必须从dirA/(rsync“ transfer-root”)开始。*/*模式的一部分引用子目录中的任何内容。/限制排除目录。的子目录中的文件dirA/不受影响。因此,最后,rsync仅向下复制一级(并且不会创建第二级目录)。
上面的解决方案(请PleaseStand)由于某种原因对我不起作用。虽然有效:
rsync -avc --no-r ./source/* ./destination/
还有另一种选择:
rsync -avc --exclude "/" ./source/ ./destination/
-f '- /*/'限制顶级文件。我还必须指定-f '- .*'排除点文件,因为我正在同步主目录。