파일 이름에 특이한 문자가 포함된 Windows 서버가 있습니다. 예를 들어 ( 과 picture.jpg
사이의 비정상적인 문자 )입니다.e
.jpg
우리는 그것을 mount -t cifs -o 'ro,iocharset=utf8' //server/source-share /dest-path
iocharset=utf8
이동식으로 설치했는데 아무것도 바뀌지 않았습니다.
우리가 그것을 사용하면 모든 것이 잘 작동합니다 ls
. 그러나 cp/rsync 및 기타 명령은 다음 파일에서 실패합니다.
cp -r /dest-path /tmp
--> cp: cannot stat '/dest-path/picture .jpg': No such file or directory
특수 문자가 공백으로 나타나는 것을 볼 수 있습니다.
rsync를 사용할 때 오류는 file has vanished: "/dest-path/picture .jpg"
(공백도 포함)입니다.
이 문제를 극복하는 방법에 대한 아이디어가 있습니까?
업데이트: 제안을 시도 rsync -rhicov
하고 rsync -av
따랐습니다. 예상대로 이러한 옵션은 이 문제와 관련이 없으므로 개선이 없습니다.
rsync -av /dest-path/* \tmp
동일한 결과를 제공합니다( file has vanished
)
find /dest-path -name "*.jpg" -ls
. 잘 작동합니다. 방금 테스트한
find /dest-path -print0 | rsync -av --files-from=- --from0 ./ /tmp
오류 : 오류rsync: link_stat "/dest-path/picture .jpg" failed: No such file or directory (2)
tar czf archive.tgz /dest-path
File removed before we read it
참고: 파일 이름 ls
은 find
표시되지만 특수 문자는 공백으로 표시됩니다(방금 16진수 편집기로 확인했습니다). 일부 다른 특수 문자는 올바르게 처리되며 rsync에서 제대로 작동합니다.
따라서 이는 CIFS 모듈 내의 문제일 수 있습니다.