환경

-visual studio 터미널 사용

-linux기반 ssh원격 서버


 

  • 아래 명령어를 사용해서 어떤 파일과 디렉토리가 있는지 확인 후 압축(visual studio터미널 사용함)
ls -l
zip -r example.zip example

 


 

  • 처음에 visual studio터미널에서 아래와 같은 명령어를 사용해, 다운로드를 하려고 했는데 실패함
scp [옵션] [유저명]@[원격 서버 IP 주소]:[원격 파일 경로] [로컬 저장 경로]
scp -P 22 user@example.com:/home/user/example.zip /mnt/c/example.zip
  • 이 명령어를 실행했을때/ 오류메시지
scp: open local "/mnt/c/example.zip": No such file or directory

 

 

 

찾아보니, wsl 환경에서의 파일 경로 문제로 인해 오류가 발생한 것이라는 것을 알게됨

/mnt/c/는 WSL 에서 Windows파일시스템을 나타내는 경로인데, wsl 이 올바르지 않거나, 이 경로가 마운트 되지 않은 경우,

해당 경로에 접근 할 수 없어 오류가 발생한 것이라고 함


그리고 visual studio 터미널의 환경차이로 인해 오류가 발생할 수 있음

visual studio터미널은 powershell, cmd와 달리 기본적으로 Linux환경의 파일 경로 체계를 따르기 때문, /mnt/c/ 경로가 유효하지 않으면 파일 저장 불가

 

 

wsl 설정 확인하고 마운트 문제를 해결해, visual studio터미널에서 해결하는 방법도 있지만

powershell을 사용하는게 더 간단한 방법이라고 해서

 

PowerShell에서 다운로드 시도

scp [옵션] [유저명]@[원격 서버 IP 주소]:[원격 파일 경로] [로컬 저장 경로]
scp -P 22 user@example.com:/home/user/example.zip C:\example.zip

 

위와 같은 명령어를 사용해서 성공함


-PowerShell에서 성공한 이유를 찾아보니, wsl경로를 사용하지 않고, window의 로컬 경로를 사용 했기 때문

-PowerShell은 wsl과 분리된 windows네이티브 환경에서 동작하기 떄문( /mat/c/가 마운트되지 않아도 상관 없음)


 

 

scp명령어  간단 정리

 

  • -P [포트 번호]:
    SSH 연결에 사용할 포트를 지정, 기본값은 22번.
  • -r:
    디렉토리와 그 하위 파일을 모두 복사 (재귀적 복사)
  • -v:
    파일 전송 과정을 자세히 보여줌 (디버그 모드)
  • -C:
    파일을 압축하여 전송 속도를 빠르게 함

 

+ Recent posts