rsync가 대상에 이름 없는 폴더를 생성하는 이유는 무엇입니까?

rsync가 대상에 이름 없는 폴더를 생성하는 이유는 무엇입니까?

다음 스크립트를 사용하여 접두사가 붙은 폴더 old_와 그 내용을 USB 하드 드라이브에 배치합니다. 어떤 이유로 rsync이름 없는 폴더가 생성되고 데이터가 해당 폴더에 복사됩니다.

rsync -vrhm --stats --progress --include='**/' --include='**/old_*/**'  --exclude='@Recycle' --exclude='*' /share/Projekte/ /share/02-18-Harburg/

이것을 어떻게 바꿀 수 있나요? 그리고 이전에 원본에서 전송된 파일을 삭제
하는 것이 가능한지 궁금합니다 .rsync

편집하다:

디렉토리를 탭하려고 하면 다음과 같은 결과가 나타납니다.

$ cd 02-18-Harburg/^M/2017/

폴더 이름은 다음과 같습니다.

$ ls -lisah
total 0
27 0 drwxr-xr-x 1 admin administrators 0 2018-05-18 13:32 ?/

여기에 이미지 설명을 입력하세요.

답변1

in은 캐리지 리턴 문자 ^M입니다 . 02-18-Harburg/^M/2017/스크립트에는 Windows 스타일 CRLF 줄 끝이 있으므로 경로는 rsync해당 이름으로 성실하게 생성됩니다./share/02-18-Harburg/<CR>

(이 ^M기호는 일반적으로 히트를 나타냅니다 Ctrl+M. 더 일반적인 기호는 캐리지 리턴 문자입니다 \r.)

dos2unix, 또는 이와 유사한 것으로 스크립트 끝 부분의 행 sed -i 's/\r//' script(GNU sed 가정) 을 수정하십시오.

ls터미널에 출력되는 파일 이름의 특수 문자를 좋아하지 않으므로 ?. 어쨌든 터미널에서 실제 CR을 볼 수 없기 때문에 이것은 실제로 좋은 것입니다. ls --quoting-style=shell-escape덜 명시적인 형식으로 파일 이름을 인쇄하는 데 사용됩니다 .

관련 정보