Réponses:
hd
est synonyme de hexdump -C
sur FreeBSD et sur certaines distributions Linux. hexdump
est des jours BSD ; od
est de la nuit des temps . Seul od
est normalisé par POSIX . La justification UNIX unique explique pourquoi a od
été choisi de préférence à hd
ou xd
.
Ces commandes font des choses très similaires: afficher une représentation textuelle d'un fichier binaire, en utilisant une notation octale, décimale ou hexadécimale. Il n'y a pas de différence fondamentale entre les deux.
Ils ont de nombreuses options pour contrôler le format de sortie, et certains formats ne peuvent être obtenus qu'avec l'une ou l'autre commande. En particulier, pour voir ce qui se trouve dans un fichier binaire, j'aime hd
le format de sortie de, avec une colonne à droite montrant les caractères imprimables littéralement; od
ne peut pas faire ça.
$ 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
est de 18 bits, soit 9/4 octets?
123
est un nombre représenté en base 10 (décimal), alors que 0123
signifie que le nombre est représenté en base 8 (octal), c'est 0123
-à- dire 83. 0x123
serait en base 16 (hexadécimal), soit 291. C'est sans rapport avec le od
format de sortie.
En fait, od
peut afficher à la fois les caractères hex / oct / dec et imprimables:
$ 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 principale différence, je suppose, n'est qu'historique. Certaines versions hd
peuvent également colorer la sortie.
od
ne prend pas en charge le z
suffixe dans-tx1z
hd
. Néanmoins, utile, merci :)
xxd
plus! : D