Ответы:
hd
является синонимом hexdump -C
на FreeBSD и на некоторых дистрибутивах Linux. hexdump
от дней BSD ; od
это с незапамятных времен . Только od
это стандартизованный POSIX . В едином обосновании UNIX обсуждается, почему od
был выбран предпочтение hd
или 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.....|
042577
, 18 бит, т.е. 9/4 байта?
123
это число, представленное в базовой 10 (десятичной), тогда как 0123
означает, что число представлено в базовой 8 (восьмеричной), то 0123
есть 83. 0x123
будет в базовой 16 (шестнадцатеричной), то есть 291. Это не имеет отношения к od
выходному формату.
На самом деле od
может отображать как hex / oct / dec, так и печатные символы:
$ 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
могут выводить цвета.
od
не поддерживает z
суффикс в-tx1z
hd
. Тем не менее, полезно, спасибо :)
xxd
тоже! : D