scp에 대해 이스케이프된 따옴표

scp에 대해 이스케이프된 따옴표

성가신 파일 이름(공백, 중괄호 등)을 올바르게 처리하는 파일 이름을 작성해야 합니다.

scp -rv "$1" shiny:/Volumes/Seagate3To/\"$1\"

이 함수는 작동하지만 두 번째 인수에서 따옴표를 이스케이프 처리해야 하는 이유를 이해할 수 없습니다 scp.

답변1

1달러라고 가정하자

This is a test directory name

대상 디렉터리(콜론 뒤의 부분)가 전체(큰따옴표 포함) 대상 컴퓨터에 전달되기를 원하기 때문에 큰따옴표를 이스케이프 처리합니다.

우리가 지나치고 싶은 것은 다음과 같습니다

/Volumes/Seagate3To/"This is a test directory name"

이스케이프되지 않으면 로컬 시스템에서 큰따옴표를 사용하고 다음 문자열을 6개의 공백으로 구분된 문자열로 보냅니다.

/Volumes/Seagate3To/This is a test directory name

결과는 오류입니다.

관련 정보