HOWTO · PowerShell

PowerShell을 사용해 Windows에서 Linux로 파일을 복사하는 방법

PowerShell에서 scp 또는 PuTTY의 pscp를 사용해 Windows에서 Linux로 파일과 폴더를 복사하는 명령 형식을 알아봅니다.

이 페이지의 내용

Windows의 PowerShell 프롬프트에서 scp 또는 PuTTY의 pscp를 사용해 파일이나 폴더를 Linux 호스트로 복사할 수 있습니다. 아래 예시는 명령 템플릿입니다. 예시에 사용된 이름, 호스트, 계정, 경로는 사용 중인 시스템에 맞는 값으로 바꾸십시오. 실제 전송에는 연결 가능한 SSH 서버와 인증에 사용할 수 있는 계정이 필요하므로, 여기서는 실행하지 않습니다.

파일 전송은 SSH를 이용해 원격 호스트에 연결하며, PowerShell 원격 작업과는 별개입니다. 두 명령 모두 선택한 클라이언트를 프롬프트에서 호출할 수 있어야 하고, Linux 호스트는 사용하는 계정에 대한 SSH 연결을 허용해야 합니다. 이 안내에서는 특정 설치 방법, 운영 체제 릴리스, PowerShell 릴리스, 클라이언트 버전을 요구하지 않습니다.

PowerShell에서 scp 명령을 사용해 Windows에서 Linux로 파일 복사하기

scp는 로컬 원본 경로 뒤에 user@host:/remote/directory/ 형식의 원격 대상을 지정해 사용합니다. 다음 단일 파일 템플릿은 현재 PowerShell 디렉터리의 test.txt를 예시 Linux 호스트의 /home/delftstack/로 복사합니다.

scp test.txt delftstack@ubuntu-PC:/home/delftstack/

로컬 원본은 test.txt입니다. delftstack는 원격 계정이고 ubuntu-PC는 호스트 이름입니다. 콜론 뒤의 대상은 해당 호스트에 있는 디렉터리입니다. SSH 액세스 구성 방식에 따라 클라이언트가 인증을 요청할 수 있습니다.

디렉터리와 그 내용을 복사하려면 -r을 추가하고 디렉터리를 원본으로 사용하십시오.

scp -r 'C:\New\complex' delftstack@ubuntu-PC:/home/delftstack/

여기서 C:\New\complex는 로컬 Windows 경로이고 /home/delftstack/는 원격 대상 디렉터리입니다. 원본 경로에 공백이 포함되어 있으면 셸 구문에 따라 로컬 경로를 따옴표로 묶으십시오. 원격 경로에 공백이 포함되어 있으면 사용 중인 scp 클라이언트와 원격 셸이 허용하는 형식으로 원격 경로를 따옴표로 묶으십시오. 정확한 따옴표 방식은 클라이언트와 셸의 조합에 따라 달라질 수 있습니다.

PowerShell에서 pscp 명령을 사용해 Windows에서 Linux로 파일 복사하기

pscp는 PuTTY의 명령줄 파일 전송 클라이언트로, SSH를 통해 파일을 전송하는 또 다른 방법을 제공합니다. PowerShell에서 pscp를 호출할 수 있는지 확인하십시오. PuTTY의 다운로드 페이지에서 릴리스를 제공합니다. 이 글에서는 특정 버전이나 설치 방법을 지정하지 않습니다.

다음 템플릿은 현재 디렉터리의 styles.csv를 이름에 공백이 포함된 원격 디렉터리로 복사합니다.

pscp styles.csv 'delftstack@ubuntu-PC:/home/delftstack/New Folder'

로컬 원본은 styles.csv입니다. 콜론 앞의 텍스트는 원격 계정과 호스트를 나타내고, 뒤의 경로는 대상입니다. 원격 지정 전체를 따옴표로 묶으면 PowerShell에서 공백이 하나의 인자로 함께 유지됩니다. 클라이언트나 원격 셸이 해당 경로를 다르게 처리한다면 해당 설정에 필요한 따옴표 형식을 사용하십시오.

디렉터리를 전송하려면 원본 경로 앞에 -r을 추가하십시오.

pscp -r 'C:\record' delftstack@ubuntu-PC:/home/delftstack/

이는 로컬 C:\record 디렉터리를 원격 /home/delftstack/ 디렉터리로 복사합니다. 두 도구 모두 디렉터리 트리에는 -r을 사용하고, 파일 하나에는 해당 옵션 없이 파일 경로를 제공합니다.

요약하면, PowerShell에서 scp 또는 PuTTY의 pscp를 로컬 원본 및 SSH 원격 대상과 함께 사용하십시오. 환경에서 사용할 수 있는 클라이언트를 선택하고 계정과 경로를 바꾸고, 메시지가 표시되면 Linux 호스트에 인증하십시오.