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