Wie kann ich Dateien in Binärform von Bash anzeigen?

289

Ich möchte den Inhalt einer Datei im aktuellen Verzeichnis anzeigen, aber binär über die Befehlszeile. Wie kann ich das erreichen?

adam_0
quelle

Antworten:

492

xxd macht sowohl binär als auch hexadezimal.

Behälter:

xxd -b file

verhexen:

xxd file
Emilio Bool
quelle
13
sudo xxd /dev/diskn | lessist jetzt meine neue Lieblingssache.
krs013
6
... und es ist unter Mac OS X und Linux vorinstalliert.
Sridhar Sarnobat
1
Dies hat gegenüber "hexdump" den Vorteil, dass auch das ASCII-Formular auf der Seite angezeigt wird, wodurch es einfacher ist, den Ort zu identifizieren, den ich betrachten möchte.
Paŭlo Ebermann
1
Und um die Ausgabe in eine ASCII-Textdatei zum Durchsuchen und Suchen zu speichern:xxd file > hex_dump_of_file.txt
Gabriel Staples
eine ergänzung: xxd ist nicht nur für linux shell. Ich denke es kommt mit vim. Ich hatte vim unter Windows installiert und habe gerade festgestellt, dass ich xxd auch unter Windows verwenden kann.
Tiina
182
hexdump -C yourfile.bin

es sei denn, Sie möchten es natürlich bearbeiten. Die meisten Linux-Distributionen haben hexdumpstandardmäßig (aber offensichtlich nicht alle).

Tyranid
quelle
1
Ich mag diese Idee, aber wie die anderen Vorschläge gibt sie nur hexadezimal aus. Natürlich ist dies viel kompakter als Binärdateien, aber ich habe es mit sehr kleinen Dateien zu tun, daher wird Binärdateien bevorzugt. Ist Hex die einzige Möglichkeit, die Datei anzuzeigen?
Adam_0
1
Wie klein ist die Datei? Alles über ein paar Bytes und Sie werden sowieso den Verstand verlieren, wenn Sie Binärdateien verwenden. Hex macht für die meisten Dinge viel mehr Sinn. Wenn Sie sich mit Hex nicht wohl fühlen, suchen Sie einfach die Bytes, an denen Sie interessiert sind, und konvertieren Sie sie mit einem Hex-Rechner.
Ente
3
Ich muss sicherstellen, dass meine Datei korrekt komprimiert wird und ich weiß nicht, wie sie in hexadezimaler Form aussehen soll (die Größe jeder Einheit beträgt 7 Bit), daher müsste ich die Zahlen von Hand eingeben.
Adam_0
Haben Sie Methoden, um Text aus einer Binärdatei anzuzeigen? Ich kann HEX-Code erhalten, aber wie soll ich ihn in normalen menschlichen Text dekodieren?
Lukas Liesis
Was ist mit der Ausgabe von hexdump -C data.bin | hexdump -C
cyb0k
69
vi your_filename

schlagen esc

Geben Sie ein :%!xxd, um die Hex-Zeichenfolgen anzuzeigen, und n :%!xxd -r, um zur normalen Bearbeitung zurückzukehren.

Ente
quelle
Ich habe festgestellt, dass :%!xxdich unerwünschte Zeichen, dh eine neue Zeile, zu meiner Datei hinzugefügt habe.
Quazi Irfan
27

Als Fallback gibt es immer od -xc filename

Jim Garrison
quelle
13

Wenn Sie Binärdateien öffnen möchten (in CentOS 7):

strings <binary_filename>
Raju
quelle
IMO ist dies die einfachste und eleganteste aller Antworten. Ich wünschte, ich könnte es mehr als einmal positiv bewerten.
Olumide
Die beste Antwort zweifellos. Dadurch wird die Binärdatei in eine JSON-Datei konvertiert. Nicht alle Helden tragen Umhänge, das stimmt
Shubham Pawar
11

sudo apt-get install bless

Bless ist ein GUI-Tool, das anzeigen, bearbeiten, suchen und vieles mehr kann. Es ist sehr leicht.

siddiq
quelle
1
Ja. Ich fand das einfacher als 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
quelle
2
hd ist ein Alias ​​für "hexdump -C" ...?
JAR.JAR.beans
@ JAR.JAR.beans Ja in der Tat. Ich benutze es, weil es leichter zu merken ist.
Aalex Gabi
Und weil es auf einigen Systemen (Debian) standardmäßig vorhanden ist.
Aalex Gabi
-1

Sie können eine Hexdump-Binärdatei verwenden

sudo apt-get install hexdump

hexdump -C yourfile.bin
Craken
quelle
1
Dies ist nur ein Duplikat von stackoverflow.com/a/1765339/12573645
sportzpikachu