성가신 파일 이름(공백, 중괄호 등)을 올바르게 처리하는 파일 이름을 작성해야 합니다.
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
결과는 오류입니다.