이상한 이유로 일부 사람들은 개행 문자가 포함된 디렉토리를 가지고 있는데, 이는 다음과 같이 재현할 수 있습니다.
mkdir normal
mv normal why$'\n'would$'\t'you$'\r'dothis
저는 이러한 이상한 문자가 포함된 rsync 파일과 폴더를 담당하고 있습니다.
현재 rsync를 병렬화 중이므로 루트를 재귀적으로 처리하고 작업을 관리 가능한 덩어리로 나누어야 합니다. 루트 디렉토리에는 이러한 이상한 문자가 없습니다. 실행하면 rsync --dry-run
병렬화할 수 있는 파일이 제공되지만예를 들어 \n
역할은 다음과 같습니다.\#012
, 나는 그것이 8 진수라고 생각합니다.
그러나 이렇게 이스케이프되면 rsync -a --files-from=files.txt
rsync가 이 폴더를 찾을 수 없기 때문에 이 이스케이프가 포함된 위치를 더 이상 보낼 수 없습니다.files.txt
\#012
이 상황에서는 어떻게 해야 합니까? rsync가 이 정보를 수집할 수 있도록 하는 추가 이스케이프 단계가 누락되었나요? 다음과 같은 이유로 파일을 쓰는 것이 불가능합니다 \n
.
somedumb\nthing
~이 되다
somedumb
thing
답변1
--from0
발신자 가 \0
.
cd /source/path1 &&
find . -print0 | rsync -av --files-from=- --from0 . remote:/target/
또는
find /source/path1/./ -print0 | rsync -av --files-from=- --from0 / remote:/target/