我通常在两台Ubuntu机器之间进行备份,但现在我想使用rsync来使用驻留在Mac上的磁盘备份Ubuntu服务器。但我没能让它正常工作。
第一次一切都很好,但很明显,mac和ubuntu机器之间的特殊字符有问题,因为每次我运行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似乎没有意识到这个选择,因为我得到了:
> MyMachine:~ Macuser$ /usr/bin/rsync -av --delete --iconv=utf-8,utf-8-mac user@linuxmachine:/home/linuxuser/Test/ /Users/Macuser/Test/
> rsync: --iconv=utf-8,utf-8-mac: unknown option
> rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1333) [client=2.6.9]
对于如何解决这个问题,有什么建议吗?
注意,正如上面的“代码示例”中可能隐藏的那样,我的mac上的rsync版本是2.6.9。
编辑:虽然Jan解决了这个问题(见我的勾选答案),但我仍然没有完全解决,因为我现在收到了一个新的错误:
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 received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
不过,我会让单独的查询回答这个进一步的问题。
https://askubuntu.com/questions/533567
复制相似问题