scp -i /Downloads/class4.pem/ ec2-user@hostip: /home/ec2-user/test [닫기]

scp -i /Downloads/class4.pem/ ec2-user@hostip: /home/ec2-user/test [닫기]
scp -i /Downloads/class4.pem/ ec2-user@hostip: /home/ec2-user/test

로컬 Mac에서 ec 2로 파일을 업로드하려고 합니다. 제가 뭘 잘못하고 있나요?

답변1

  • 파일 복사 또는 이동과 관련된 거의 모든 유닉스 도구와 마찬가지로 소스 파일을 지정해야 합니다.앞으로목적지. 또한 scp의 -r옵션을 사용하여 전체 디렉터리 트리를 반복적으로 복사하지 않는 한 실제 파일 이름(또는 하나 이상의 파일 이름과 일치하는 glob 패턴)도 소스로 지정해야 합니다.

  • 대상은 단일 전체 파일 이름 또는 디렉터리일 수 있습니다(여러 파일 또는 재귀 디렉터리 트리를 복사하는 경우,~해야 한다디렉토리)입니다.

  • scp소스 또는 대상이 제공되면 기본값은 사용자의 홈 디렉터리입니다 user@host:(또는 host:로컬 사용자 이름이 원격 사용자 이름과 동일하거나 사용자 이름이 의 규칙에 의해 제공되는 경우 ~/.ssh/config).

  • 신원 문서(예: 개인 키)는 다음과 같습니다.문서, 디렉토리가 아니므 /Downloads/class4.pem아니요또한 ID 파일은 다른 사람이 액세스할 수 없습니다. 즉 , /실행 중인 사용자가 소유해야 하며 scp해당 사용자만 읽을 수 있어야 합니다(예: 권한 600 또는 400).

당신의 명령:

scp -i /Downloads/class4.pem ec2-user@hostip: /home/ec2-user/test

복사하는 중~에서 ec2-user@hostip: 도착하다 /home/ec2-user/test.

예를 들어 실제 파일이 지정되지 않았고 해당 옵션을 사용하지 않았기 scp: .: not a regular file때문에 오류 메시지와 함께 실패합니다 .ec2-user@hostip:-r

/home/ec2-user/test로컬 파일을 ec2-user의 홈 디렉터리에 복사하려면 hostip다음을 시도해 보세요.

scp -i /Downloads/class4.pem /home/ec2-user/test ec2-user@hostip:

파일이 아닌 디렉토리이고 전체 디렉토리를 에 test복사하려면 다음을 사용하십시오 .~ec2-user/test/hostip-r

    scp -i /Downloads/class4.pem -r /home/ec2-user/test/ ec2-user@hostip:

또는 로컬 디렉터리의 최상위 수준에 있는 파일을 /home/ec2-user/test/호스트의 원격 사용자 홈 디렉터리에 복사하면 됩니다 ec2-user.

    scp -i /Downloads/class4.pem /home/ec2-user/test/* ec2-user@hostip:

test/ 의 하위 디렉터리가 존재하면 오류 메시지가 생성됩니다( *glob과 일치하지만 아직 사용하지 않았기 때문입니다 -r).

그런데 엄격한 요구 사항은 없지만 다음을 수행하는 것이 가장 좋습니다.언제나/디렉토리에 후행이 있습니다. 이는 특히 수백 개의 파일을 실수로 단일 파일로 복사하는 것에 대한 기본 보호 기능을 제공하지 않는 이전 버전의 유틸리티에서 치명적인 오류를 방지합니다 mv(마지막으로 이동한 파일을 제외한 모든 파일이 사라졌습니다!). 대상이 디렉터리가 아닌 경우 뒤에 /가 있으면 mv가 실패하게 됩니다. 대부분의 최신 버전의 도구는 해당 동작을 재정의하고 해당 동작을 수행하지 않도록 강제하지 않는 한 이와 같은 오류를 감지하고 방지합니다.

후행 /도 자체 문서화되어 개별 파일뿐만 아니라 디렉토리로 복사하거나 디렉토리에서 복사하려는 것을 분명하게 만듭니다.


(*) 예외가 있지만 일반적으로 일반적인 관행(예: 대상 앞에 소스)을 무시하고 모든 소스 파일 앞에 대상 디렉터리를 배치할 수 있는 특정 옵션입니다.

예를 들어 -t, --target-directory=DIRECTORYGNU 버전에서는 options cp, mv등이 있습니다 . 이는 주로 편의를 위한 것이며, ln또는 같은 다른 프로그램과 함께 이러한 프로그램을 더 쉽게 사용할 수 있도록 합니다(소스 파일 이름 목록을 명령 중간에 삽입하는 것보다 명령 끝에 추가하는 것이 더 쉽습니다).find ... -exec ...xargs

관련 정보