scp 명령을 사용하여 파일을 전송할 때 동일한 이름을 유지하시겠습니까?

scp 명령을 사용하여 파일을 전송할 때 동일한 이름을 유지하시겠습니까?

명령을 사용하여 scp로컬 시스템에서 원격 시스템으로 파일을 이동하고 싶습니다. 나는 다음과 같은 일을하고 있습니다 :

$ scp file1 root@abc:root /root/tmp

이 명령을 사용하면 업로드할 수 있지만 file1문제 abc:/root는 이름이 다음과 같이 변경된다는 것입니다. tmp제 경우에는 이름을 원본과 동일하게 유지한 다음 폴더에 복사하고 싶습니다.

어떻게 해야 하나요?

답변1

이 작업을 수행:

$ scp file1 root@abc:/root/tmp/

이것은 또한 작동합니다:

$ scp file1 root@abc:~/tmp/

디렉터리가 /root/tmp원격 시스템 abc에 없는 경우 이 작업을 수행하면 rsync가 원격 디렉터리를 생성합니다.

$ rsync -ave ssh file1 root@abc:/root/tmp

마지막으로 꼭 사용해야 한다면 ssh다음과 같이 할 수 있습니다.

$ cat file1 | ssh root@abc "mkdir /root/tmp; cat >> /root/tmp/file1"

답변2

이는 /root위의 디렉터리 에 하위 디렉터리가 abc없음을 의미합니다 tmp. 또 다른 점은 root명령줄에서 추가 항목을 사용하고 있다는 것입니다. (그것은해야한다 scp file1 root@abc:/root/tmp)

수행해야 할 작업은 다음과 같습니다.

  • 먼저 다음 위치에 필요한 하위 디렉터리를 만듭니다 abc.

    ssh root@abc 'mkdir /root/tmp'
    
  • 그런 다음 새로 생성된 하위 디렉터리에 파일을 복사합니다.

    scp file1 root@abc:/root/tmp
    

답변3

마지막 매개변수를 생략하면 복사된 파일은 다음과 같습니다./root/file1

scp file1 root@abc:root

답변4

대상 뒤에 슬래시가 없으면 폴더가 이미 존재하지 않는 한 파일의 새 이름으로 해석됩니다. 따라서 다음 중 하나를 수행하십시오.

$ scp file1 root@abc:root /root/tmp/

또는 /root/tmp/디렉터리를 만든 후 다음을 수행합니다.

$ scp file1 root@abc:root /root/tmp

관련 정보