accueil > Traitement et recherche de texte > xxd

xxd : Outil de dump hexadécimal et de conversion inverse

La commande xxd est un outil qui permet de dumper (afficher) le contenu d'un fichier au format hexadécimal, ou inversement, de reconvertir un dump hexadécimal en fichier binaire original. Elle est plus flexible que `hexdump` et particulièrement utile pour éditer le contenu de fichiers binaires puis les restaurer à leur état original.

Aperçu

xxd affiche le contenu des fichiers binaires en hexadécimal et en chaînes ASCII, de manière similaire à `hexdump` ou `od`. Cependant, sa principale caractéristique est sa **fonction de conversion inverse** qui permet de restaurer le contenu dumpé en fichier binaire original. Cette fonction rend possible l'édition de fichiers binaires sous forme hexadécimale dans un éditeur de texte, puis leur sauvegarde en tant que fichiers binaires originaux à l'aide de `xxd -r`. Cette flexibilité est très puissante pour l'analyse et la modification de fichiers binaires, surtout lorsqu'elle est utilisée avec l'éditeur `vim`.

Caractéristiques principales

Les principales caractéristiques de la commande xxd sont les suivantes :

  • Affiche le contenu d'un fichier au format hexadécimal et ASCII.
  • Peut reconvertir un dump hexadécimal en fichier binaire original.
  • Peut être utilisé avec des éditeurs de texte classiques pour modifier des fichiers binaires.
  • Offre diverses options pour contrôler finement le format de sortie.

Différences entre xxd et hexdump

xxd et hexdump ont des fonctions de dump hexadécimal similaires, mais la principale différence réside dans la présence ou l'absence de la fonction de conversion inverse.

  • xxd: Fournit la fonction de `conversion inverse` (`-r`) pour restaurer un dump hexadécimal en fichier binaire original. L'intégration avec `vim` est puissante.
  • hexdump: Un outil axé uniquement sur la fonction de dump, sans fonction de conversion inverse.

Options principales

Les options fréquemment utilisées de la commande xxd sont regroupées par objectif.

1) Options de dump et de conversion inverse

2) Aide

Commande générée :

Essayez de combiner les commandes.

Description:

`xxd` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Découvrez les fonctionnalités de la commande xxd à travers divers exemples d'utilisation.

Dump hexadécimal du contenu d'un fichier

echo 'Hello World!' > test.txt
xxd test.txt

Affiche le contenu du fichier `test.txt` en hexadécimal et en caractères ASCII.

Enregistrer un dump hexadécimal dans un fichier

xxd /bin/ls > ls_dump.txt

Enregistre le contenu du fichier binaire `/bin/ls` dans le fichier `ls_dump.txt`.

Reconvertir un fichier dump en original

xxd -r ls_dump.txt ls_copy

Restaure le fichier `ls_dump.txt` précédemment enregistré en fichier binaire original `ls_copy`. **Cette fonctionnalité est la principale caractéristique de xxd.**

Édition de fichiers binaires avec vim

vim file.bin
(vim에서) :%!xxd
(편집)
(vim에서) :%!xxd -r

Dans `vim`, utilisez la commande `%!xxd` pour basculer le fichier actuel en mode dump hexadécimal, puis, après modification, utilisez `%!xxd -r` pour le restaurer et l'enregistrer.

Installation

xxd est inclus dans le paquet `vim`. La plupart des distributions Linux ont les paquets `vim-common` ou `vim` installés par défaut, donc une installation séparée n'est généralement pas nécessaire.

Debian/Ubuntu

sudo apt update
sudo apt install -y vim-common

RHEL/CentOS/Fedora

sudo dnf install -y vim-common

Astuces et précautions

Voici quelques points à noter lors de l'utilisation de la commande xxd.

Astuces

  • L'option `-r` de `xxd` ne peut reconvertir correctement que les fichiers de dump créés par `xxd`. Elle pourrait ne pas s'appliquer à d'autres formats de fichiers de dump hexadécimal.
  • Soyez extrêmement prudent lorsque vous modifiez des fichiers binaires. Un seul octet incorrect peut corrompre l'ensemble du programme.
  • Pour éviter d'écraser le fichier original lors de la reconversion, il est toujours plus sûr de sauvegarder sous un nom de fichier différent (ex: `xxd -r old.hex > new.bin`).

commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.


Commandes de la même catégorie