我在谷歌上搜索了几个小时来为我的问题找到解决方案,但我无法让它工作:
我必须将 ext4 格式驱动器上的文件结构 rsync 到 hfs+ 格式驱动器。文件夹和文件名可以包含德语元音变音 (äöüß),并且 OS X 和 Linux 对 UTF8 的处理不同。OS X 文件系统使用 Unicode Normalization Form D (NFD),而 Linux 使用 Form C (NFC)。
这种行为会导致删除和重新同步名称中带有变音符号的文件,这会产生大量不必要的开销,尤其是当您使用该--backup选项进行rsync 时。
防止这种行为的解决方案是使用,--iconv=UTF8,UTF8-MAC但这仅适用于 Mac 上较新的iconvlib。Ubuntu 14.04 上的实际 iconvlib 不支持伪字符集 UTF8-MAC:
root@ubuntu:~/wartung# iconv -l
...
UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE, UTF16LE, UTF32, UTF32BE, UTF32LE, ...
Run Code Online (Sandbox Code Playgroud)
使用自制软件的最新 rsync 的 OS X 做到这一点:
bash-3.2$ iconv -l
ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 …Run Code Online (Sandbox Code Playgroud)