本页内容
- Linux od 命令
- 问题1. 如何使用 od 命令?
- 问题2. 如何让 od 跳过字节?
- 问题3. 如何限制每行的输出字节数?
- 问题4. 如何让 od 输出重复行?
- 问题5. 如何显示字节偏移量?
- 问题6. 如何将 od 的输出限制为指定字节数?
- 总结
在使用 Linux 命令行时,你可能有时会希望将文件内容以原始形式之外的其他方式(例如十进制或八进制)显示或转换。幸运的是,系统内置了一个命令行工具可以应对这类场景。
Linux 中的 od(octal dump,八进制转储)命令是一个功能多样的实用工具,可用于以多种格式(如八进制、十六进制、十进制和 ASCII)显示文件内容。该命令非常适合查看二进制数据或包含不可打印字符的文件,方便用户检查和调试原始数据。od 命令主要被开发人员和系统管理员使用,用于分析底层数据结构、进行取证分析或调试软件。
在本教程中,我们将通过易于理解的示例来讲解该工具的基础用法。此处讨论的所有示例均在 Ubuntu 24.04 LTS 上测试通过。
Linux od 命令
OD 命令用于将输入转换为八进制格式。其语法如下:
od [OPTION]... [FILE]...
以下是其手册页(man page)中的说明:
Write an unambiguous representation, octal bytes by default, of FILE to standard output. With more than one FILE argument, concatenate them in the listed order to form the input. With no FILE, or when FILE is -, read standard input.
下面是一些问答形式的示例,能帮助你更好地理解 od 命令的用法:
问题1. 如何使用 od 命令?
假设下面是你要转换的文件内容:

当你对它运行 od 命令时,结果如下:

默认情况下,od 命令会将文件转换为八进制格式。不过,你也可以强制该工具转换为其他格式。例如,使用 -x 可转换为十六进制:

类似地,还有选项可将输入以字符、浮点和整数格式显示。
问题2. 如何让 od 跳过字节?
如果你想跳过开头的若干字节,可以通过将数字传递给 -j 命令行选项来实现。
od -j [num] [filename]
例如:
od -j 10 file1
问题3. 如何限制每行的输出字节数?
默认情况下,od 命令每行输出 32 个字节。不过,你可以使用 -w 选项自定义该数值。
od -w[num] [filename]
例如:
od -w2 file1

问题4. 如何让 od 输出重复行?
假设你要转换的文件中包含重复的行。例如:

默认情况下,od 会在输出中用 * 表示重复行。

不过,如果你愿意,可以改变这一行为,方法是使用 -v 命令行选项。
od -c -w1 -v file1

问题5. 如何显示字节偏移量?
可以使用 -A 命令行选项显示字节偏移量。你需要指定偏移量的显示格式——x 表示十六进制,o 表示八进制,d 表示十进制。
od -A[format] [filename]
例如:
od -Ad -c file1

问题6. 如何将 od 的输出限制为指定字节数?
要将整体输出限制为指定的字节数,请使用 -N 选项。
od -N[num] [filename]
例如:
od -N50 file1

可以看到,整体输出被截断到了指定范围。
总结
OD 命令以命令行选项的形式提供了大量功能。我们在此讨论了其中一些主要的选项。在你练习完这些用法之后,可前往该工具的手册页了解更多内容。