scp에는 대상 서버에 동일한 이름의 디렉터리가 있어야 합니다.

scp에는 대상 서버에 동일한 이름의 디렉터리가 있어야 합니다.

scp원격 서버에 디렉토리를 업로드하는 데 사용하고 있습니다 . 그러나 원격 서버에 동일한 이름의 "대상" 디렉터리가 없으면 "해당 파일 없음" 오류가 발생합니다. 이는 대상 디렉터리가 존재하지 않는 문제가 아니라는 점에 유의하세요(다음 예에서 대상은 원격 서버의 홈 디렉터리임). 전송되는 디렉토리와 이름을 공유하지 않습니다.

디렉터리 업로드 실패의 예:

$ mkdir test_local 
$ touch test_local/test_local.txt 
$ scp -r ./test_local [email protected]:
> scp: realpath ./test_local: No such file
> scp: upload "./test_local": path canonicalization failed
> scp: failed to upload directory ./test_local to .

그러나 원격 시스템에 동일한 이름을 가진 빈 대상 디렉터리를 생성하면([이메일 보호됨]:~/test_local), 명령이 작동하고 로컬 디렉터리의 내용으로 대상 디렉터리를 성공적으로 업데이트합니다.

내가 이해한 바에 따르면, scp동일한 이름을 가진 빈 "대상" 디렉터리가 존재해야 한다는 요구 사항은 없어야 하는데, 이런 일이 발생하는 이유는 무엇입니까?

저는 MacOS 13.0.1을 사용하고 있고 원격 호스트는 Rocky Linux 8.6(Green Obsidian)을 사용하고 있습니다.

답변1

최신 버전 scp(ssh 9.0.0부터 시작)은 SFTP복제를 위해 프로토콜을 사용합니다. 왜냐면 sftp이 문제는 매우모두 다 아는. 해결책은 -O플래그를 사용하는 것 scp입니다.scp -O -r

이 해결책을 찾았습니다여기.

관련 정보