예를 들어, I want to run 이 4 가지 명령을 동시에.
scp remote:A/1.txt local:A/1.txt
scp remote:A/2.txt local:A/2.txt
scp remote:B/1.txt local:B/1.txt
scp remote:C/1.txt local:C/1.txt
그렇게 할 수 있는 가장 쉬운 무엇입니까?
여러 개의 파일을 복제본에 에서 원격 지역:
$ scp [email protected]:/some/remote/directory/\{a,b,c\} ./
여러 개의 파일을 복제본에 충스러웠으니 로컬-원격:
$ scp foo.txt bar.txt [email protected]:~
$ scp {foo,bar}.txt [email protected]:~
$ scp *.txt [email protected]:~
여러 개의 파일을 복제본에 충스러웠으니 원격지 간:
$ scp [email protected]:/some/remote/directory/foobar.txt \
[email protected]:/some/remote/directory/
에서 로컬 서버:
'scp' file1.txt [email protected] 파스투플로이드 ~ /: file2.sh
서버에서 지역:
'scp - T [email protected]:" file1.txt file2.txt"; '~ /yourpathtocopy" ";
그래서 '-r' 스위치를 사용하여 전체 디렉터리용 복사할 수 있습니다 수 있다면, 당신의 모든 것을 한 번에 파일 압축을 격리합니다 İç 디렉터리인 복사할 수 있습니다.
scp -r ./dir-with-files user@remote-server:upload-path
scp -r user@remote-server:path-to-dir-with-files download-path
그래서 예를 들어
scp -r [email protected]:/var/log ~/backup-logs
또는 그냥 몇 명은 경우 사용할 수 있습니다.
scp 1.txt 2.txt 3.log user@remote-server:upload-path
지리산 언급한 것처럼 사용할 수 있습니다 / / local / 길 '' scp boot-r user@host:/some/remote/path 재귀적으로 파일을 복사할 수 있다. 여기에서는 there& # 39 에 있는 모든 파일이 포함된 단일 디렉터리입니다 운영까지도 전송하십시오 (and nothing else).
그러나, SFTP 는 여러 곳에서 파일을 전송할 수 있으며, 다른 대체 스케쳐내 디렉터리용 대상이 일치하지 않습니다.
sftp user@host << EOF
get /some/remote/path1/file1 /some/local/path1/file1
get /some/remote/path2/file2 /some/local/path2/file2
get /some/remote/path3/file3 /some/local/path3/file3
EOF
이 soundmixer. [", 여기서 doc"] (http://en.wikipedia.org/wiki/Here_document) 의 입력 명령 구문을 시퀀스일 정의하십시오 SFTP. Sftp 명령을 실행할 수 있는 대안으로 동일팔레트에 텍스트 파일로 sftp user@host 바치피레스테스트 '-' b
가장 간단한 방법은
local$ scp remote:{A/1,A/2,B/3,C/4}.txt ./
그래서 {. } 목록 (A, B, C, 다음은 디렉터리용 디렉터리용 포함할 수 있습니다. " 1.txt"; 및 " 2.txt"; 그 디렉터리를 파일 이름에 있다).
비록 이 모든 것이 아닌 경우 4 개의 파일을 하나의 로컬 디렉터리입니다 복제본에 that& # 39 의 너희는너희가 그들이성년에 합니다.
위의 경우 끝날 것이라고 A/1.txt A/2.txt, 로컬 및 원격 파일, 디렉터리, 통해 복사됨 B/3.txt C/4.txt 단일 파일 이름이 ./2.txt ./3.txt 및 ./4.txt ./1.txt,
잠시 후 나는 scp 사용해 볼 수 있는 가장 강력한 해결책:
(싱글 및 두려워 큰따옴표의)
로컬-원격:
scp -r "FILE1" "FILE2" HOST:'"DIR"'
원격입니다 지역:
scp -r HOST:'"FILE1" "FILE2"' "DIR"
이후, HOST:" " 있는모든 것을 알 수 있습니다. 전송됩니다 원격 및 구문 분석 할 수 있다. 그래서 우리는 의해 처리되지 않은 로컬 쉘로 확인해야 합니다. 그래서 단일 따옴표 외숙모요 이 파일 이름 공간에 큰따옴표의 처리하는 데 사용됩니다.
scp -r "DIR_IN"/*.txt HOST:'"DIR"'
scp -r HOST:'"DIR_IN"/*.txt' "DIR"
{} 를 사용하는 것에 비해 " "; 구문 원하는거요 타임라인에서만 정도 셸, 이건 범용
문제 *: 원격 서버에 로컬 컴퓨터에 명령을 사용하여 여러 디렉터리용 단일 SCP 에서 복사 및 각 디렉터리입니다 그대로 유지할 수 있는 원격 서버에.
솔루션 *: SCP 할 수 있습니다. 이 문제를 해결할 수 있는 여러 SCP 사용할 때 귀찮게 암호 입력 여러 번 폴더용. 따라서 이 또한 많은 시간을 절약합니다!
예:
# copies folders t1, t2, t3 from `test` to your local working directory
# note that there shouldn't be any space in between the folder names;
# we also escape the braces.
# please note the dot at the end of the SCP command
~$ cd ~/working/directory
~$ scp -r [email protected]:/work/datasets/images/test/\{t1,t2,t3\} .
PS: 이 위대한 의한 동기 부여 대답: scp 또는 여러 개의 파일을 통해 sftp 복제본에 단일 명령
참고: 위의 질문에 답하는 사과하겠네 대해 미리 일부에 불과합니다. 하지만 나는 이 명령을 com/downloads/global/corporate/iar/esg_prosupport. 유용할 내 현재 bsbab-unix 합니다.
특정 파일 업로드 로컬 컴퓨터에 원격 시스템으로:
scp file1.txt file2.txt lab1.cpp 레차오레스트 :folder1/destinationfolderforfiles/ '[email protected]' ~ /desktop/dump_files $
업로드 디렉토리 전체를 로컬 컴퓨터에 원격 시스템으로:
scp - r $ desktop/dump_files :folder1/destinationfolderforfiles/ '[email protected]' ~
디렉토리 전체를 다운로드하십시오 원격 시스템에서 로컬 시스템:
'[email protected]' scp - r $ 데스크탑입니다 :public/web desktop/ ~ / /
하지만, 난 또 파일 이름 변경 관리 작동됨 완벽한 정렬할지 보내는 동안 로컬-원격. 내가 쓴 《 명령 - scp /path/to/file.txt root@hostname:/path/newfile.txt 사샤파스 - p password
하지만 이 제품을 사용하면 오류 /path/newfile.txt: No such file or 디렉터리입니다 늑대굴에서 이 상황에서 돕는다구요 plz
제 경우에는 실로나는 사용할 때만 제한적으로 sftp 함장님이요 그래서 sftp 를 사용하여 바치필레 사용할 수 있었다. 내가 만든 스크랩트 다음과 같은. 여기서는 작업하고 있는 파일을 옮길 destdir_on_remote_system / tmp 디렉터리인 및 원격 시스템에서. 또한 함께 때만 대화식이 아닌 로그인. 설정해야 합니다 / 개인 키 암호를 입력하지 않고도 로그인시키는 수 있도록 했다. 필요에 따라 변경.
#!/bin/bash
cd /tmp
# start script with list of files to transfer
ls -1 fileset1* > batchfile1
ls -1 fileset2* >> batchfile1
sed -i -e 's/^/put /' batchfile1
echo "cd destdir_on_remote_system" > batchfile
cat batchfile1 >> batchfile
rm batchfile1
sftp -b batchfile user@host
이 같은 사례는 있지만 서로 다른 모든 파일이 특정 확장명은 접미어입니다 (말하도다 로그 파일 수를) 을 사용하면 다음과 같다.
scp [email protected]:/some/log/folder/some_log_file.* ./
이 모든 해당 폴더 내의 파일을 통해 원격, 즉 - 복제할지 release. some_log_file some_log_file.1, some_log_file.2, some_log_file.3.