xxd命令详解

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