rsync는 대상이 디렉터리 이름에 ":" 및 "@"이 있는 로컬 디렉터리인지, 아니면 원격 SSH인지 어떻게 구별합니까? [복사]

rsync는 대상이 디렉터리 이름에 ":" 및 "@"이 있는 로컬 디렉터리인지, 아니면 원격 SSH인지 어떻게 구별합니까? [복사]

[email protected]:기술적으로 우리는 (유효한 UNIX 경로이지 ​​않습니까?) 라는 로컬 디렉토리를 생성할 수 있으므로 rsync내부는 다음 사항을 어떻게 알 수 있습니까?

rsync test/ [email protected]:/test/

방법:

?

궁금한데 rsync결정 규칙은 무엇입니까?

답변1

이것은 매우 복잡합니다.

제안된 솔루션rsync: 파일 이름의 콜론일반적으로 작동하는 것처럼 보이지만 가능한 특수 사례가 많이 있습니다.

예: rsync는 대상이 원격인지 로컬인지 어떻게 알 수 있나요? 디렉터리 이름에 및 가 포함된 로컬 경로일 수 있습니다. 또는 사용자 이름(이상한 Unix 사용자 이름이지만 가능합니다! 시도해 보세요!), 호스트 및 경로가 있는 원격 호스트일 수도 있습니다.rsync src ./[email protected]:/test/
./[email protected]:/test/:@
./hellouseraddb.com/test/

여기이는 OpenSSH 구현에서 URI를 구문 분석하는 코드 scp이며 읽어 볼 가치가 있습니다.

규칙은 IETF 초안에 설명되어 있습니다.https://datatracker.ietf.org/doc/html/draft-ietf-secsh-scp-sftp-ssh-uri-04

관련 정보