다음 스크립트를 사용하여 접두사가 붙은 폴더 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
덜 명시적인 형식으로 파일 이름을 인쇄하는 데 사용됩니다 .