답변:
sftp
, 같은 cp
과 scp
, 당신은 폴더 (및 그 내용, 분명히)를 복사 할 때, 당신은 명시 적으로 당신이 함께 재귀 적 폴더를 전송할를 말할 있어야합니다 -r
옵션을 선택합니다.
따라서 -r
명령에 추가 하십시오.
-r
받는 sftp
당신이 연결할 때 명령. sftp -r user@host
Couldn't canonicalise: No such file or directory
.
# sftp user@remote-host
#> get -r remote-folder
나는 당신이 사용할 것을 제안 할 수 있습니다 rsync
. 보안 연결을 통해 파일을 이동할 때 다소 산업 표준입니다.
rsync -alPvz ./source_dir server.com:destination_dir
지금까지 몇 년 동안 사용해 왔던 것입니다.
( -a
옵션은 디렉토리 재귀와 같은 것을 처리합니다)
-a
= 재귀 + 기호 링크, 권한, 수정 시간, 소유자, 그룹, 특수 파일 및 장치 파일 유지 (후자는 수퍼 유저 권한 필요); -l
= 심볼릭 링크 유지 (이미 포함 -a
); -P
= 전송 중 진행률 표시 + 부분적으로 전송 된 파일 유지; -v
= 상세 모드 (그러나 -P
이상한 (버그?) protocol version mismatch
오류 를 피하기 위해 사용할 때는 필수 인 것처럼 보입니다 ); -z
= 전송 된 데이터의 압축을 활성화합니다.
-l
스위치 사용 여부에 따라 버전에 따라 달라집니다 . 나는 이전 버전은 포함하지 않았다 기억 -l
에 -a
.
당신은 또한 사용할 수 있습니다 scp
. 일반적인 형식은
scp -rp sourceDirName username@server:destDirName
scp
"보안 사본"을 의미합니다. 깃발은
-r
하위 디렉토리로 재귀-p
수정 시간 유지나머지 항목은 설명이 필요하다고 생각합니다
rsync
옵션이 아닌 경우 다음을 권장합니다 lftp
.
lftp sftp://user@host.com/path/path/
그런 다음 mirror
명령을 사용하여 다음 과 같이 재귀 적으로 업로드하십시오.
mirror -R
(즉, 재귀가 기본입니다 참고가. -R
입니다 역 - 대신 다운로드 미러 명령 업로드를 만들기 위해 추가보십시오. --dry-run
당신이 무엇을 기대하고있어 확인하기 위해 시험을 할 수 있습니다.)
또는 재귀없이 업로드하려면 다음을 수행하십시오.
mirror --no-recursion
cd
미러링하려는 디렉토리 로 들어가야합니다. 잘 작동합니다!
가능하면 sshfs를 사용하십시오 . 그것은이다 FUSE의 가장 현대적인 유닉스에서 사용할 수, 파일 시스템, 및 SFTP 서버와 함께 작동합니다. 이것은 원격 파일 시스템입니다. 일반적인 유틸리티를 사용하여 SFTP 프로토콜을 통해 원격 파일을 조작 할 수 있습니다.
mkdir /mount/point
sshfs server.example.com:/remote/path /mount/point
ls /mount/point
cp -Rp /mount/point/somedir /local/location
fusemount -d /mount/point
실제로 'sftp를 사용하여 디렉토리를 전송하는 방법'이라는 질문이있는 경우
sftp -r user@server
그러나 디렉토리를 전송하는 경우 필요에 따라 두 가지 더 나은 옵션을 제안 할 수 있습니다. sftp
ssh와 같은 명령 프롬프트에서 원격 서버에 로그인해야하지만 원하는 파일 만 있으면 더 쉽고 빠른 방법이 있습니다.
SCP
한 번 전송하려면 업로드를 시도하십시오.
# upload source directory to remote server
scp -rp source_dir user@server:dest
#download directory from remote server:
scp -rp user@server:source_dir dest
#specifying ssh key:
scp -rp -i ~/.ssh/key user@server:source_dir dest
#remote directory has spaces
scp -rp -i ~/.ssh/key user@server:"source\\ dir" dest
재 동기화
정기적으로 디렉토리를 동기화하려는 경우 rsync를 사용하는 것이 더 합리적입니다. 두 디렉토리 사이에 델타를 수행하여 전송 시간과 데이터를 유선으로 저장합니다.
rsync -r -a -v -e ssh --delete source_dir user@server:dest
다음은 가장 일반적인 rsync에 옵션 중 일부의 목록입니다 : ( 여기에서 촬영 )
희망이 도움이됩니다!
서버에서 로컬 경로로 이동할 수 있습니다.
scp -rp user@server:directoryname(full path) .