rsync는 파일을 복사하지 않습니다

rsync는 파일을 복사하지 않습니다

나는 다음과 같은 것을 실행하고 있는데 rsync -av -e "ssh" --include="dir1/***" --include="file1.txt" --exclude="*" superuser@remote-server:/var/www/ /var/, 내가 얻는 것은 다음과 같은 메시지뿐입니다:

receiving incremental file list

sent 276 bytes  received 10 bytes  21.19 bytes/sec
total size is 0  speedup is 0.00

파일이 전송되지 않습니다.

답변1

dir1의 하위 디렉터리를 포함하지만 dir1 자체는 제외됩니다. 그래서 아이들은 그것을 보지 못했습니다.

rsync매뉴얼 페이지 에서 :

경로 제외 개념은 후행 "*" 규칙을 사용할 때 특히 중요합니다. 예를 들어 다음은 작동하지 않습니다.

+ /some/path/this-file-will-not-be-found
+ /file-is-included
- * 

상위 디렉터리 "some"은 "*" 규칙에 의해 제외되므로 rsync는 "some" 또는 "some/path" 디렉터리의 어떤 파일에도 액세스하지 않기 때문에 실패합니다. 한 가지 해결책은 계층 구조의 모든 디렉터리를 포함하는 단일 규칙("+ */" ​​​​("- *" 규칙 앞 어딘가에 배치))을 요구하고 해당 --prune-empty-dirs옵션을 사용하는 것입니다. 또 다른 해결책은 액세스가 필요한 모든 상위 디렉터리에 대해 특정 포함 규칙을 추가하는 것입니다. 예를 들어, 다음 규칙 세트는 제대로 작동합니다.

+ /some/
+ /some/path/
+ /some/path/this-file-is-found
+ /file-also-included
- *

관련 정보