Comment afficher des fichiers en binaire depuis bash?

289

Je voudrais voir le contenu d'un fichier dans le répertoire courant, mais en binaire depuis la ligne de commande. Comment puis-je atteindre cet objectif?

adam_0
la source

Réponses:

492

xxd fait à la fois binaire et hexadécimal.

poubelle:

xxd -b file

hex:

xxd file
Emilio Bool
la source
13
sudo xxd /dev/diskn | lessest maintenant ma nouvelle chose préférée.
krs013
6
... et il est préinstallé sur Mac OS X et Linux.
Sridhar Sarnobat
1
Cela a l'avantage sur "hexdump" qu'il montre également le formulaire ASCII sur le côté, ce qui facilite l'identification de l'emplacement que je veux regarder.
Paŭlo Ebermann
1
Et pour vider la sortie dans un fichier texte ASCII pour lecture et recherche:xxd file > hex_dump_of_file.txt
Gabriel Staples
un supplément: xxd n'est pas seulement pour le shell linux. Je pense que cela vient avec vim. J'avais installé vim sur windows, et je viens de découvrir que je peux aussi utiliser xxd dans windows.
Tiina
182
hexdump -C yourfile.bin

sauf si vous souhaitez le modifier bien sûr. La plupart des distributions Linux ont hexdumppar défaut (mais évidemment pas toutes).

tyranide
la source
1
J'aime cette idée, mais comme les autres suggestions, elle ne sort que hex. Évidemment, c'est beaucoup plus compact que binaire, mais je traite de très petits fichiers, donc le binaire est préféré. L'hexagone est-il le seul moyen pour que je puisse voir le fichier?
adam_0
1
Eh bien, quelle est la taille du fichier? N'importe quoi sur quelques octets et vous commencerez à perdre la tête en utilisant le binaire de toute façon. Hex est beaucoup plus logique pour la plupart des choses. Si vous n'êtes pas à l'aise avec hexadécimal, recherchez simplement les octets qui vous intéressent et convertissez-les à l'aide d'une calculatrice hexadécimale.
Duck
3
Je dois m'assurer que mon fichier se comprime correctement et je ne sais pas à quoi il devrait ressembler en hexadécimal (la taille de chaque unité est de 7 bits), donc je devrais croquer les chiffres à la main.
adam_0
avez-vous des méthodes pour voir le texte du fichier binaire? Je peux obtenir du code HEX, mais comment le décoder en texte humain normal?
Lukas Liesis
Qu'en est-il de la sortie de hexdump -C data.bin | hexdump -C
cyb0k
69
vi your_filename

frappé esc

Tapez :%!xxdpour afficher les chaînes hexadécimales, le n :%!xxd -rpour revenir à l'édition normale.

canard
la source
J'ai trouvé l' :%!xxdajout de caractères indésirables, par exemple une nouvelle ligne à mon fichier?
Quazi Irfan
27

Comme solution de rechange, il y a toujours od -xc filename

Jim Garrison
la source
13

Si vous souhaitez ouvrir des fichiers binaires (dans CentOS 7):

strings <binary_filename>
Raju
la source
OMI, c'est la réponse la plus simple et la plus élégante. J'aimerais pouvoir voter plus d'une fois.
Olumide
La meilleure réponse, haut la main. Cela convertit le fichier binaire en un fichier JSON. Tous les héros ne portent pas de capes, c'est vrai
Shubham Pawar
11

sudo apt-get install bless

Bless est un outil GUI qui peut afficher, modifier, rechercher et bien plus encore. Son poids très léger.

siddiq
la source
1
Oui. J'ai trouvé que c'était plus facile que Vim.
Paulb
3
$ echo -n 'Hello world!' | hd
00000000  48 65 6c 6c 6f 20 77 6f  72 6c 64 21              |Hello world!|
0000000c
Aalex Gabi
la source
2
hd est un alias pour "hexdump -C" ...?
JAR.JAR.beans
@ JAR.JAR.beans Oui en effet. Je l'utilise car c'est plus facile à retenir.
Aalex Gabi
Et parce qu'il est présent par défaut sur certains systèmes (Debian).
Aalex Gabi
-1

Vous pouvez utiliser le fichier binaire hexdump

sudo apt-get install hexdump

hexdump -C yourfile.bin
fou
la source
1
Ceci est juste un doublon de stackoverflow.com/a/1765339/12573645
sportzpikachu