我想使用 rsync 将数据从远程 Linux 服务器备份到本地 Mac。我想在我的本地 Mac 上初始化这个操作。除了有一个特殊字符问题外,一切正常:每次我重新运行 rsync 操作(在初始同步之后)时,首先删除带有特殊字符的文件,然后重新同步。据我了解,不同字符集存在问题,首选的解决方案似乎是使用该--iconv选项:
您可以使用 rsync 的 --iconv 选项在 UTF-8 NFC 和 NFD 之间进行转换,至少如果您使用的是 Mac。有一个特殊的 utf-8-mac 字符集代表 UTF-8 NFD。因此,要将文件从 Mac 复制到 NAS,您需要运行以下命令:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/这会将远程服务器上的所有本地文件名从 UTF-8 NFD 转换为 UTF-8 NFC。文件的内容不会受到影响。
问题是这对我来说只适用于“一种方式”,即从 Mac 同步到 linux 时。但我想“走另一条路”,即从 linux 机器同步到 Mac。我想从我的本地 Mac 初始化操作。但是当我尝试:
rsync -av --delete --iconv=utf-8,utf-8-mac mynas:remotedir/ localdir/
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
iconv_open("UTF-8", "utf-8-mac") failed
rsync error: requested action not supported (code 4) at rsync.c(118) [sender=3.0.9]
rsync: connection unexpectedly closed (0 bytes …Run Code Online (Sandbox Code Playgroud)