hd和od可以互相替代吗?

hd和od可以互相替代吗?

hdod都是二进制内容的转储查看器。可以hd在任何地方使用od,反之亦然吗?

答案1

hdhexdump -C是on的同义词自由BSD以及在某些 Linux 发行版上。hexdump是来自BSD 天;od是来自时间的黎明。只不过od由 POSIX 标准化。这单一 UNIX 基本原理讨论为什么od优先选择hdor xd

这些命令执行非常相似的操作:使用八进制、十进制或十六进制表示法显示二进制文件的文本表示形式。两者没有本质区别。

它们有许多选项来控制输出格式,并且某些格式只能通过一个或另一个命令来实现。特别是,为了一目了然地了解二进制文件中的内容,我喜欢hd的输出格式,右侧有一列按字面显示可打印字符;od不能那样做。

$ od /bin/sh | head -n 2                # od default: octal, 2-byte words
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000002 000076 000001 000000 170020 000101 000000 000000

$ od -Ax -t x1 /bin/sh | head -n 2      # od showing bytes in hexadecimal
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00

$ hd /bin/sh | head -n 2                # hd default output: nice
00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 3e 00 01 00 00 00  10 f0 41 00 00 00 00 00  |..>.......A.....|

答案2

实际上od可以显示十六进制/八进制/十进制和可打印字符:

$ od -Ax -tx1z /bin/sh | head -n2
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  >.ELF............<
000010 03 00 3e 00 01 00 00 00 32 4e 00 00 00 00 00 00  >..>.....2N......<

我想,主要的区别只是历史的。有些版本还hd可以彩色输出。

相关内容