Risposte:
hd
è sinonimo di hexdump -C
su FreeBSD e di alcune distribuzioni Linux. hexdump
è dai giorni BSD ; od
è dall'alba dei tempi . Solo od
è standardizzato da POSIX . La logica unica di UNIX discute il motivo per cui è od
stato scelto in preferenza hd
o xd
.
Questi comandi eseguono operazioni molto simili: visualizzare una rappresentazione testuale di un file binario, usando la notazione ottale, decimale o esadecimale. Non c'è alcuna differenza fondamentale tra i due.
Hanno molte opzioni per controllare il formato di output e alcuni formati possono essere raggiunti solo con l'uno o l'altro comando. In particolare, per vedere il contenuto di un file binario, mi piace hd
il formato di output, con una colonna a destra che mostra letteralmente i caratteri stampabili; od
non posso farlo.
$ 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
sono 18 bit, ovvero 9/4 byte?
123
è un numero rappresentato nella base 10 (decimale), mentre 0123
significa che il numero è rappresentato nella base 8 (ottale), ovvero 0123
83. 0x123
sarebbe nella base 16 (esadecimale), ovvero 291. Questo è non correlato al od
formato di output.
In realtà od
può visualizzare sia caratteri esadecimali / ott / dec che caratteri stampabili:
$ 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......<
La differenza principale, immagino, è solo storica. Inoltre alcune versioni hd
possono colorare l'output.
od
non supporta il z
suffisso in-tx1z
hd
. Tuttavia, utile, grazie :)
xxd
anche! : D