xxd 是一个 Unix/Linux 系统中的命令行工具,用于生成二进制文件的十六进制表示(hex dump)以及将十六进制表示转换回二进制文件。它常用于查看和编辑二进制文件内容。下面是对 xxd 命令及其常用选项的详细解释:
一、基本用法
xxd [options] [infile [outfile]]
1
infile:输入文件。如果不指定,xxd 将从标准输入读取数据。
outfile:输出文件。如果不指定,xxd 将输出到标准输出。
二、常用选项
1、 -a 或 -autoskip
自动跳过具有零值的行,默认情况下不跳过。
2、-b
以二进制格式(而非十六进制格式)显示输出。
3、-c cols 或 -cols cols
设置每行显示的字节数,默认是 16。
4、-e 或 -little-endian
以小端格式显示输出(适用于 16 位和 32 位的单位)。
5、-g bytes 或 -groupsize bytes
设置每组显示的字节数,默认是 2。
6、-h 或 -help
显示帮助信息并退出。
7、-i
生成一个包含十六进制数据的 C 语言源代码文件。
8、-l len 或 -len len
只显示前 len 字节的数据。
9、-p
生成一个纯十六进制数字的连续输出,不显示行号和 ASCII 部分。
10、-r 或 -reverse
将十六进制表示转换回二进制文件。
11、-s [+]seek
从文件的指定偏移位置开始显示数据。可以是正数(从文件开头开始偏移)或负数(从文件末尾开始偏移)。
12、-u
将所有输出的十六进制字母转换为大写。
三、示例
1、基本十六进制输出
xxd file.bin
生成 file.bin 文件的十六进制表示。
2、每行显示 8 个字节
xxd -c 8 file.bin
3、只显示前 64 个字节
cpp
xxd -l 64 file.bin
4、从偏移位置 128 字节开始显示
cpp
xxd -s 128 file.bin
5、生成二进制格式的输出(常用)
cpp
xxd -b file.bin
6、生成包含十六进制数据的 C 语言源代码文件
cpp
xxd -i file.bin file.h
7、将十六进制表示转换回二进制文件(常用)
cpp
xxd -r file.hex file.bin
7、二进制文件一十六进制hex字符串输出到控制台(常用)
cpp
xxd -p file.bin