首页/系统/Linux 运维命令速查/od 八进制/十六进制转储
文本处理77 条

od 八进制/十六进制转储

经典二进制查看器:-c 看字符、-tx1 看十六进制字节、-An 去掉地址列;排查魔数、行尾、不可见字符都靠它。

Linux 运维命令速查系统更新于 2026-10-13

od 看的是原始字节

od 是经典的字节转储工具:-c 按字符形式显示(换行、回车、制表符等转义可见),-tx1 按单字节十六进制显示,-An 去掉地址列,-v 关闭重复行折叠。排查魔数不对、行尾是 LF 还是 CRLF、文本里混入 BOM 或零宽字符这类问题,它比任何文本编辑器都可靠,因为输出的就是文件里真实存在的字节。

基本信息

适用平台Linux 与类 Unix(GNU coreutils)
语法od [选项] [文件](不加文件则读标准输入)
常用选项-c 字符、-tx1/-tx2 十六进制、-An 去地址、-v 不折叠、-N 限制字节、-j 跳过字节
相关命令hexdump、xxd、file
典型判读行尾、BOM、魔数、不可见字符

典型使用场景

  • 确认文件开头魔数是否正确,判断文件类型与是否损坏
  • 检查行尾是 LF 还是 CRLF(跨平台脚本报错常见原因)
  • 找出文本里的不可见字符(BOM、零宽字符、全角空格)
  • 对比两个文件头部若干字节的差异
  • 二进制协议调试时核对原始字节

常用示例

常用示例
od -c file | head                   # 字符形式:换行显示为 \n、回车显示为 \r
od -An -tx1 -v sample.bin | head    # 十六进制单字节、去地址、不折叠重复行
od -c -N 16 file                    # 只看前 16 字节,判断魔数最快
od -An -tx1 -N 8 -j 8 file          # 跳过前 8 字节再看 8 字节,比较文件头差异
printf 'A\r\n' | od -c            # 验证 CRLF:直观看到 \r 与 \n 两个字节
od -c file | tail -3                # 看文件结尾是否带换行
file file && hexdump -C file | head -1   # 与 file、hexdump 交叉验证结论

选项与输出读法

选项/字段含义怎么用
-c按字符显示,转义字符显式可见查换行、回车、制表符最快
-tx1每字节两位十六进制看原始字节与魔数,配合 -An 更清爽
-tx2 / -td4双字节、四字节整数涉及字节序时要显式指定,别用默认格式猜
-An去掉行首地址列便于直接复制字节内容
-v关闭重复行折叠(默认显示为星号)要看全量内容必须加
-N / -j限制读取字节数、跳过前若干字节只看文件头时最有效率
判断文件类型先用 file,需要证据再用 od 亲眼确认字节:一个给结论,一个给依据,两者结合结论最扎实。
文本文件开头出现多余的前导字节(如 BOM 的 EF BB BF)时,用 od -An -tx1 -N 8 一看就知道,比在编辑器里反复确认可靠得多。

易错点

  • 重复行默认折叠成星号:误以为文件内容很少,需要全量查看时必须加 -v
  • 用默认格式解读字节序:默认宽度可能是双字节,判断单字节或双字节要显式 -tx1/-tx2
  • 把 -c 里的转义写法当成两个可见字符:\r 表示一个回车字节,不是反斜杠加字母
  • 在大文件上直接全量 od:终端被淹没且耗时,先用 -N 限制字节数再看

数据来源与参考

  • man 1 od(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌