특정 디렉터리의 특정 파일만 동기화하는 방법

특정 디렉터리의 특정 파일만 동기화하는 방법

루트 디렉토리 + 다른 디렉토리 *.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 관련 **연산자는 슬래시 및 기타 문자와 일치합니다.

관련 정보