루트 디렉토리 + 다른 디렉토리 *.jpg
의 모든 파일을 동기화하려고 합니다./var/www/data/models/days/
/var/www/data
나는 다음을 원한다:
rsync -az --delete --include='/models' --include='*.jpg' --exclude='*' $SRC::/var/www/data /var/www/data
하지만 아무것도 동기화되지 않습니다. 내가 뭘 잘못했나요?
*.jpg
참고: 동일한 파일 이름 match( ) 를 가진 다른 디렉터리가 필요하기 때문에 /models/days를 포함하도록 소스나 대상을 변경하고 싶지 않습니다.
답변1
/models
순회에는 포함했지만 하위 디렉터리는 포함하지 않았습니다. 디렉터리를 제외하면 rsync는 디렉터리를 순회하지 않으며 해당 내용을 포함할 수 없습니다.
--include='*/'
모든 하위 디렉터리를 포함하고 -m
비어 있는 디렉터리를 복사하지 않는 데 사용됩니다 . 자세한 내용은 다음을 참조하세요.Rsync 필터: 하나의 패턴만 복사
답변2
옵션 --include
에서는 주요 하위 디렉터리 이름을 고려해야 합니다. 다음을 사용해 보십시오 **.jpg
: rsync 관련 **
연산자는 슬래시 및 기타 문자와 일치합니다.