
Linux xxd 工具
xxd 是 Linux 系统中一款用于将文件内容转换为十六进制格式的命令行工具,常用于数据调试和二进制分析。
它不仅可以显示文件的十六进制表示,还可以将十六进制还原为原始二进制数据。
基本语法
<code> xxd [参数] [输入文件 [输出文件]]</code>
- 输入文件:待处理的文件。若未提供,则从标准输入读取。
- 输出文件:结果保存的目标文件。若未指定,则输出到标准输出。
常用参数说明:
-
-r:执行反向操作,将十六进制还原成二进制。 -
-p:以纯十六进制形式输出(不带地址偏移和 ASCII)。 -
-c cols:设置每行显示的字节数,默认为 16。 -
-g bytes:定义每组显示的字节数,默认是 2。 -
-s offset:从指定偏移位置开始读取文件(支持负数偏移)。 -
-l length:限制输出的数据长度。 -
-u:输出大写的十六进制字符。 -
-i:生成 C 语言数组格式的输出。 -
-b:输出二进制位代替十六进制。
常用示例
查看文件的十六进制内容:
<code> xxd filename</code>
将文本转换为十六进制:
<code> echo "Hello World" | xxd</code>
调整每行显示的字节数:
<code> xxd -c 8 filename</code>
还原十六进制为原始数据:
<code> xxd -r hexfile</code>
仅显示十六进制部分:
<code> xxd -p filename</code>
限定输出范围:
<code> xxd -s 0x10 -l 0x20 filename</code>
实战案例
1. 显示文件的十六进制内容
<code> xxd filename.txt</code>
输出示例:
<code> 00000000: 4865 6c6c 6f0a Hello.</code>
2. 每行只显示 8 字节数据
<code> xxd -c 8 filename.txt</code>
输出示例:
<code> 00000000: 4865 6c6c 6f0a 0000 Hello...</code>
3. 将十六进制数据还原为二进制文件
<code> xxd -r hexfile.txt original.bin</code>
4. 从特定偏移量开始显示内容
<code> xxd -s 0x10 filename.txt</code>
5. 输出纯十六进制格式
<code> xxd -p filename.txt</code>
输出示例:
<code> 48656c6c6f0a</code>
6. 生成 C 数组格式
<code> xxd -i filename.txt</code>
输出示例:
<code>unsigned char filename_txt[] = {
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x0a
};
unsigned int filename_txt_len = 6;</code>7. 十六进制输出使用大写字母
<code> xxd -u filename.txt</code>
输出示例:
<code> 00000000: 4865 6c6c 6f0a Hello.</code>
8. 只显示前 16 个字节
<code> xxd -l 16 filename.txt</code>
9. 以二进制方式显示内容
<code> xxd -b filename.txt</code>
输出示例:
<code> 00000000: 01001000 01100101 01101100 01101100 01101111 00001010 Hello.</code>










