以下是我的目录结构的目录。
我只想运行rsync
任何子目录的存档目录下的内容并排除其他所有内容:
./
ap/
ap/aploader/
ap/aploader/archive/
ap/as400/
ap/as400/archive/
ce/
ce/archive/
edi/
edi/810/
edi/810/archive/
fin/
fin/adp/
fin/adp/archive/
gl/
gl/adp/
gl/adp/archive/
gl/as400/
gl/as400/archive/
gl/dcb/
gl/dcb/archive/
om/
om/pricelist/
om/pricelist/archive/
om/sygma/
om/sygma/archive/
源目录和目标目录具有相同的目录结构,但只有归档目录需要rsync
。
例如:
下面的所有内容/xx/inbound/om/pricelist/archive
都需要复制到/yy/inbound/om/pricelist/archive
,并且
xx/inbound/om/sygma/archive
需要复制到
/yy/inbound/om/sygma/archive
,依此类推...
我尝试了以下方法,但没有按照我想要的方式工作:
rsync --include '**archive/***' --exclude '*' -avzh -avzh /xx/inbound/ /yy/inbound
答案1
我认为您唯一缺少的就是最初包含通往存档目录的所有目录,即。还--include='*/'
。这是因为排除目录(带有“*”)会排除其下面的所有内容
rsync --include='*/' --include='**archive/***' --exclude='*' -avzh /xx/inbound/ /yy/inbound
除此之外,你不应该需要 2 套'-avzh'