我试图将一系列目录的内容非递归复制到另一个远程系统。
/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file
DIR1,DIR2,和DIR3包含很多目录,我不希望被复制。在远程主机上复制到/ dirB并保持相同的目录结构。
我试过了:
rsync /dirA/*/ host:/dirB/
rsync /dirA/ host:/dirB/
但是他们没有做我想要的。
rsync允许您指定触发包含或排除文件和目录的模式。我认为您想使用以下方式:
rsync -a -f '- /*/*/' /dirA/ host:/dirB/
解释:
-a
触发归档模式,激活“符号链接,设备,属性,权限,所有权等”的递归和保留man rsync
。-f
是的缩写--filter=
,它添加了文件过滤规则。
-
表示这是一个排除模式。/
意味着模式必须从dirA/
(rsync“ transfer-root”)开始。*/*
模式的一部分引用子目录中的任何内容。/
限制排除目录。的子目录中的文件dirA/
不受影响。因此,最后,rsync仅向下复制一级(并且不会创建第二级目录)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句