명령을 사용하여 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