查看非文本文件内容:od进化版xxd
在介绍od时,说过了xxd是od的升级版。od命令很基础,而且常用的进制是十六进制,而不是八进制,所以每次使用od的话,就有点不顺手了。要多打些额外的参数来显示十六进制。这样就给使用带来了不便。这样,xxd也就出来了。xxd的xx可以看成是进制的表示,d则是dump的缩写。也就是可以支持默认十六进制的输出。xx也就是表示默认两个十六进制字节一组的输出数据。dump就是输出的意思,dump本意是倾倒,意思是大批量的输出。而且xxd只支持十六进制显示数据。od可以显示各种进制,而xxd特化为了十六进制了。
好了,明白了命令xxd的名称由来,相信对此命令也就更加有感觉些了,而不仅仅是三个字母的组合了。从名称就知道命令的主要作用。这也是真正掌握常用命令的诀窍。不死记硬背,就连名称都理解到位了,忘不了了。
语法: xxd [选项] 文件名
选项:
-b :binary(二进制),按照二进制输出数据。
用法:xxd -b 1.txt
效果:
-g:group(分组),显示的数据几个字节一组显示,在g后面带一个数字指定。默认2字节一组。
用法:xxd -g 1 1.txt
效果:
-u:upper(大写),默认情况,数据显示的十六进制的字母是小写的,如果要大写,加上u。
用法:xxd u 1.txt
效果:
-l 长度值:lenght(长度),显示数据的字节长度。
用法:xxd -l 3 1.txt
效果:
最后说的一个是特色,可以将十六进制数据输出为C语言的数组声明初始化格式,这样可以快速将大量十六进制数据写到代码中去。这里只是讲几个常用的而已,不是只有这么些选项哦。
-i :include (包含),output in C include file style,C语言风格输出。
用法:xxd -i 1.txt
效果:
由上图可以看到,文件中的数据以十六进制输出为C语言的数组形式,并且还写好了数组声明和初始化的代码,有意思。这个在一些时候非常有用,如果手动去格式化这些数据,一定让人眼花缭乱,我之前就手动做过,眼睛都不敢眨一下,生怕错了。
xxd的一个亮点就是这个了。至于其他亮点,就留给读者自己去探寻吧。我只介绍常用的。需要了解更多,只需要输入:
xxd --help 或者 man xxd,非常详细的说明就显示出来了。