Od

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Inspection de fichiers binaires
Commande od
Contexte GNU coreutils — présent par défaut sur quasi tous les Unix (norme POSIX)
Voir aussi xxd, hexdump (alternatives plus lisibles)

od (« octal dump ») affiche le contenu d'un fichier sous forme de dump — octal par défaut, mais aussi hexadécimal, décimal ou caractère selon les options. Contrairement à un éditeur de texte classique, il montre les octets bruts sans interprétation : c'est l'outil de référence pour inspecter un fichier binaire ou traquer un caractère invisible qu'aucun éditeur n'affiche correctement.

Options principales

od -A x -t x1 fichier    # adresses en hexa (-A x), un octet par groupe en hexa (-t x1)
od -t c fichier          # format caractère : lettres affichées telles quelles, le reste en échappement (\t, \n, \0...)
od -A x -t x1z fichier   # comme ci-dessus + colonne ASCII à droite (extension GNU -z)
od -An -t x1 fichier     # -An supprime la colonne d'adresses

Les formats se combinent avec -t : x1/x2/x4 (hexa sur 1/2/4 octets), o1 (octal), d1 (décimal signé), u1 (décimal non signé), c (caractère), a (nom du caractère, ex. nul, del). -N n limite la lecture aux n premiers octets, -j n saute les n premiers octets (utile pour sauter un en-tête).

Cas d'usage : inspecter un fichier binaire

Identifier une signature de fichier (magic bytes) sans dépendre de la commande file :

od -A x -t x1z -N 16 image.png

Les 8 premiers octets d'un PNG valide sont toujours 89 50 4e 47 0d 0a 1a 0a — un fichier renommé ou corrompu se repère immédiatement en comparant ce préfixe.

Cas d'usage : traquer un caractère invisible dans un fichier texte

Un fichier qui « a l'air » normal dans un éditeur peut contenir des octets invisibles (retour chariot Windows, BOM UTF-8, tabulation cachée) qui cassent un script ou un parseur. Le format caractère les révèle directement :

od -c fichier.txt | grep -E '\\r|\\t'

Un fichier édité sous Windows puis transféré tel quel affichera des \r avant chaque \n (fins de ligne CRLF au lieu de LF). Pour un BOM UTF-8 en tête de fichier :

od -A x -t x1 -N 3 fichier.txt

La séquence ef bb bf en tout début de fichier signale un BOM UTF-8, souvent source de bugs sur des scripts shell ou des fichiers de configuration qui ne l'attendent pas.

Comparaison avec xxd et hexdump

od est disponible partout (coreutils, norme POSIX) mais son format par défaut — octal, sans colonne ASCII — est peu lisible ; il faut composer les options (-A x -t x1z) pour obtenir un affichage proche des outils plus récents.

xxd (fourni avec Vim) affiche par défaut l'adresse en hexa, les octets en hexa et la colonne ASCII sans réglage — et sait aussi faire l'inverse avec xxd -r pour reconstruire un binaire à partir d'un dump hexa, ce qu'od ne fait pas.

hexdump -C (à vérifier — paquet selon distribution) donne un résultat quasi identique à xxd par défaut (adresse, hexa, ASCII).

En résumé : od reste le choix « toujours disponible » (dépannage sur un système minimal), xxd/hexdump -C sont plus confortables au quotidien quand ils sont installés.

Voir aussi

  • file — identification de type de fichier par signature (à vérifier si une fiche existe)
  • strings — extraction des chaînes de caractères imprimables d'un binaire (à vérifier si une fiche existe)