rsync 버전 3.2.4에서는행동 변화새로운 인수 보호 방법에 대해 설명합니다. 이는 파일이나 폴더의 파일 이름에 공백이 포함된 경우에 해당됩니다.
나는 그 주장을 알고 있다 --old-args
. 그러나 이는 해결 방법이며 여전히 "기존 방식"을 적용합니다. 내 목표는 다음과 같습니다
- 3.2.4에 도입된 "새로운" 인수 보호 방법을 사용하세요.
- 이 "방식"을 사용하는 스크립트는 rsync의 이전 버전과 새 버전 모두에서 작동해야 합니다.아니요현재 시스템의 rsync 버전을 확인하세요.
어떻게 해야할지 모르겠지만 아이디어가 있습니다.
나는 과거에 이 작업을 수행한 적이 있습니다(이것은 rsync 3.2.3 이전 버전에서는 작동했지만 3.2.4 이상에서는 작동하지 않았습니다).
rsync -aiv host:"a simple file.pdf" .
가능한 해결책
-s
내가 원하는 솔루션은 이전 rsync 버전에도 존재하는 솔루션을 사용하는 것입니다 .
--protect-args, -s no space-splitting; wildcard chars only
"
이렇게 교체 했어요'
rsync -aiv host:'a simple file.pdf' . -s
이것은 내 테스트 환경에서 작동하는 것 같습니다. 하지만 이것이 괜찮은지 잘 모르겠습니다.
IMHO 이 솔루션의 장점은 다음과 같습니다.
- 이전 버전의 rsync에서 작동합니다.
- 최신 버전(3.2.6)에서는 이것이
-s
기본 동작인 것 같습니다.
사이드 노트-s
: was 의 긴 버전 --protect-args
이지만 그때는 was였습니다.--secluded-args
rsync 3.2.6에서 다음으로 이름이 변경되었습니다."이것이 rsync의 기본 백슬래시 이스케이프 매개변수 보호 동작과 어떻게 다른지 더 명확하게 설명합니다." 그러나 이전 이름은 --protect-args
여전히 허용됩니다.