Ответы:
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