如果 cat'd 哪些字符会弄乱我的终端并发出大量噪音?

Jos*_*vin 0 scripting linux shell terminal

我编写了一个包装脚本,我将其别名为cat,称为 safecat,它可以保护我免于意外cat读取二进制文件和从我的 PC 扬声器中听到大量的尖叫声。现在它认为一个文件是二进制文件,如果第一页中 30% 或更多的字符是非文本字符(ASCII 范围 32-127 和\n, \r, \t, \b),它将拒绝对其进行分类。

我突然想到,我真的没有任何问题,只要我没有发出尖叫声并且我的终端没有搞砸。是否有一组字符或字符序列可以专门查找并拒绝查找(如果存在)?那会更健壮。

safecat.py 来源:

Tom*_*nor 5

我通过使用 less 作为寻呼机而不是 cat 并使用回滚来解决这个问题。

Less 警告你“这个文件可能是二进制文件,继续吗?[y/N]”。


Cry*_*vok 5

Try cat -vet,这将确保所有控制字符都转换为安全的屏幕显示内容。

是的,我承认我是这样记得的,因为它很有趣 ;)