답변:
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 '- .*'
홈 디렉토리를 동기화했기 때문에 도트 파일을 제외 하도록 지정해야 했습니다.