xxd是二进制查看命令,默认将2文件显示为16进制字符串表示形式。
看例子:

[root@ambari dir]# cat t 31 [root@ambari dir]# xxd t 0000000: 3331 0a 31. [root@ambari dir]# xxd -ps t 33310a [root@ambari dir]# xxd -b t 0000000: 00110011 00110001 00001010 31.

-ps 参数:以 postscript的连续16进制转储输出,也叫做纯16进制转储。
-b参数:以2进制字符串形式输出。


-r参数:逆向转换。将16进制字符串表示转为实际的数:

[root@ambari dir]# echo -n “0000000: 3331 0a 31.” | xxd -r 31 [root@ambari dir]# echo -n “0000000: 3331 0a” | xxd -r 31 [root@ambari dir]# echo -n “33310a” | xxd -r -ps 31 [root@ambari dir]# echo -n “33310A” | xxd -r -ps 31

实际上xxd -r -ps是将字符串”33310A”转为了0x33310A这个数,而这个数正好可以被shell显示为”31”而已。
[root@ambari ~]# echo -n “aabbcc0a” | xxd -r -ps

总结

xxd -ps 可以输出相对好看的格式内容,且连续。
xxd -ps -r 可以将上面输出的编码内容反向解析回文本。