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 '- .*'
排除点文件,因为我正在同步主目录。