아래는 내 디렉토리 구조의 디렉토리입니다.
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'