SSH로 디렉터리를 복사하는 방법
scp는 재귀를 지시하지 않으면 폴더를 복사하지 않습니다 —— -r를 추가하세요:
scp -r ./myfolder user@host:/remote/path/ 이렇게 하면 디렉터리 트리 전체가 복사됩니다. 크거나 반복되는 전송에는 rsync가 더 낫습니다(이어받기가 되고 변경되지 않은 파일은 건너뜁니다). 모바일에서는 SFTP 앱이 탭 한 번으로 처리해 줍니다. 아래에서 각각의 방법과 흔한 오류를 설명합니다.
scp -r —— 직접적인 방법
# local folder → server
scp -r ./project user@host:/var/www/
# server folder → local
scp -r user@host:/var/log/nginx ./logs
# non-default port (note: capital -P)
scp -P 2222 -r ./project user@host:/var/www/ 대부분의 사람이 빠지는 함정:scp는 포트에 대문자 -P를 사용합니다(소문자 -p는 타임스탬프를 보존합니다). 이 둘을 혼동하는 것이 흔한 "scp가 작동하지 않는" 원인입니다.
rsync —— 크거나 반복되는 복사에 더 좋음
크거나, 동기화하거나, 한 번 넘게 실행하는 것이라면 rsync를 쓰세요 —— 변경된 부분만 전송하고 중단되어도 이어받습니다:
rsync -avz ./project/ user@host:/var/www/project/
# with a non-default port or a specific key:
rsync -avz -e "ssh -p 2222 -i ~/.ssh/mykey" ./project/ user@host:/var/www/project/ -a는 권한을 보존하며 재귀하고, -v는 상세 출력, -z는 압축합니다. 소스 끝의 슬래시(project/)에 주의하세요 —— 이는 내용물을 복사합니다. 슬래시가 없으면 폴더 자체를 복사합니다. (rsync에서 특정 키를 사용하는 방법은 특정 SSH 키 사용하기를 참고하세요.)
sftp —— 대화식, 그리고 get -r
둘러보는 것을 선호한다면, sftp는 get -r로 디렉터리를 다운로드합니다:
sftp user@host
sftp> get -r /remote/folder 세 가지 도구와 각각의 사용 시점에 대해서는 SSH로 파일 전송하기를 참고하세요.
흔한 오류
- "not a regular file" / 아무것도 복사되지 않음 —— 디렉터리에
-r를 빠뜨렸습니다. - 잘못된 포트 / connection refused —— scp에서는
-P(대문자)를 사용하고 포트를 확인하세요. - Permission denied —— 대상 경로에 쓸 수 없거나 키 인증에 실패했습니다(publickey 가이드).
휴대폰에서 폴더 복사하기
터치 키보드로 scp -r에 두 개의 원격 경로를 입력하는 것은 바로 모바일이 고통스럽게 만드는 종류의 작업입니다. SFTP를 지원하는 클라이언트는 그것을 둘러보기로 바꿔 줍니다:서버의 파일 시스템을 열고, 폴더를 골라, 다운로드하거나 업로드합니다. TermAI의 SFTP는 서버의 파일을 둘러보고, 전송하고, 심지어 직접 편집할 수 있게 해 줍니다. 스크립트화된 복사를 원한다면, AI 어시스턴트가 당신이 검토할 수 있도록 올바른 scp -r 또는 rsync 명령을 작성해 줍니다.
FAQ
디렉터리를 scp하려면?-r를 추가해 재귀합니다:scp -r ./folder user@host:/path/. 기본이 아닌 포트에는 대문자 -P를 사용합니다.
왜 scp가 내 폴더를 복사하지 않나요?-r가 없으면 scp는 디렉터리를 거부합니다("not a regular file"). -r를 추가하세요. 포트에 대문자 -P를 사용했는지도 확인하세요.
디렉터리에는 scp인가 rsync인가?
한 번뿐인 작은 복사에는 scp -r; 크거나, 반복되거나, 중단될 수 있는 것에는 rsync —— 이어받고 변경되지 않은 파일은 건너뜁니다.
sftp로 디렉터리를 다운로드하려면?sftp user@host로 접속한 다음 get -r /remote/folder를 실행합니다.
빠른 사실
- 폴더를 scp:
scp -r ./folder user@host:/path/(-r는 필수) - 포트:scp는 대문자
-P를 사용(소문자-p= 시간 보존) - 크거나/반복:
rsync -avz src/ user@host:/dest/—— 이어받고 변경되지 않은 것은 건너뜀 - sftp:
get -r /remote/folder - 모바일:경로를 입력하는 대신 SFTP로 둘러보며 전송
iOS/Android 무료. 무료 플랜은 AI 5회/일, SSH/SFTP 무제한, Tailscale 내장.