ファイル名に異常な文字を含む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モジュール内の問題である可能性があります。