Respostas:
hd
é sinônimo de hexdump -C
no FreeBSD e em algumas distribuições Linux. hexdump
é dos dias do BSD ; od
é desde o início dos tempos . Somente od
é padronizado pelo POSIX . A lógica do UNIX único discute por que od
foi escolhido em preferência a hd
ou xd
.
Esses comandos fazem coisas muito semelhantes: exibem uma representação textual de um arquivo binário, usando notação octal, decimal ou hexadecimal. Não há diferença fundamental entre os dois.
Eles têm muitas opções para controlar o formato de saída e alguns formatos só podem ser alcançados com um ou outro comando. Em particular, para ver um pouco do conteúdo de um arquivo binário, eu gosto hd
do formato de saída, com uma coluna à direita mostrando caracteres imprimíveis literalmente; od
não posso fazer isso.
$ 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
é de 18 bits, ou seja, 9/4 bytes?
123
é um número representado na base 10 (decimal), enquanto 0123
que significa que o número é representado na base 8 (octal), ou seja, 0123
é 83. 0x123
estaria na base 16 (hexadecimal), ou seja, 291. Isso é não relacionado ao od
formato de saída.
Na verdade, od
pode exibir caracteres hex / oct / dec e caracteres imprimíveis:
$ 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......<
A principal diferença, eu acho, é apenas histórica. Além disso, algumas versões hd
podem imprimir em cores.
od
não suporta o z
sufixo in-tx1z
hd
. No entanto, útil, obrigado :)
xxd
também! : D