![rsync는 대상이 디렉터리 이름에 ":" 및 "@"이 있는 로컬 디렉터리인지, 아니면 원격 SSH인지 어떻게 구별합니까? [복사]](https://linux55.com/image/183909/rsync%EB%8A%94%20%EB%8C%80%EC%83%81%EC%9D%B4%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EC%9D%B4%EB%A6%84%EC%97%90%20%22%3A%22%20%EB%B0%8F%20%22%40%22%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EB%A1%9C%EC%BB%AC%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%B8%EC%A7%80%2C%20%EC%95%84%EB%8B%88%EB%A9%B4%20%EC%9B%90%EA%B2%A9%20SSH%EC%9D%B8%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EA%B5%AC%EB%B3%84%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
[email protected]:
기술적으로 우리는 (유효한 UNIX 경로이지 않습니까?) 라는 로컬 디렉토리를 생성할 수 있으므로 rsync
내부는 다음 사항을 어떻게 알 수 있습니까?
rsync test/ [email protected]:/test/
방법:
목적지는현지의경로
[email protected]:/test/
(예:)./[email protected]:/test/
대상은 원격 호스트입니다.
[email protected]:/test/
?
궁금한데 rsync
결정 규칙은 무엇입니까?
답변1
이것은 매우 복잡합니다.
제안된 솔루션rsync: 파일 이름의 콜론일반적으로 작동하는 것처럼 보이지만 가능한 특수 사례가 많이 있습니다.
예: rsync는 대상이 원격인지 로컬인지 어떻게 알 수 있나요? 디렉터리 이름에 및 가 포함된 로컬 경로일 수 있습니다. 또는 사용자 이름(이상한 Unix 사용자 이름이지만 가능합니다! 시도해 보세요!), 호스트 및 경로가 있는 원격 호스트일 수도 있습니다.rsync src ./[email protected]:/test/
./[email protected]:/test/
:
@
./hello
useradd
b.com
/test/
여기이는 OpenSSH 구현에서 URI를 구문 분석하는 코드 scp
이며 읽어 볼 가치가 있습니다.
규칙은 IETF 초안에 설명되어 있습니다.https://datatracker.ietf.org/doc/html/draft-ietf-secsh-scp-sftp-ssh-uri-04