文件名中深奥的字符有时会导致奇怪的错误。最近我用rsync备份了文件,注意到进程进行了几分钟后,所有状态输出都停止了。进一步调查,我发现原因是文件名中有亚洲字符。其中一个符号具有unicode值0x0090,我想我的shell将其解释为控制字符DCS。由于没有跟随相应的ST字符(值0x009C),这导致所有输出停止。在rsync完成后,随后发布的所有文本都立即溢出到终端。
我已经查阅了stty手册页面,但是在rsync执行期间,我无法找到暂时删除这个特殊符号的方法。有什么办法让这些角色停用吗?
发布于 2017-01-21 12:48:31
理想情况下,rsync只应打印可打印的字符。
如果不是这样的话,您可以通过过滤器实用程序(如cat -v )传输rsync的输出,尽管它由于缓冲而引入了一些延迟。而且,我也不确定cat -v是否足够聪明,能够捕获UTF-8编码的C1或0x90字节(我不清楚您遇到的是哪一个)。
https://unix.stackexchange.com/questions/339091
复制相似问题