Jak przeglądać pliki binarne z bash?

289

Chciałbym wyświetlić zawartość pliku w bieżącym katalogu, ale w formacie binarnym z wiersza poleceń. Jak mogę to osiągnąć?

adam_0
źródło

Odpowiedzi:

492

xxd robi zarówno binarny, jak i szesnastkowy.

kosz:

xxd -b file

klątwa:

xxd file
Emilio Bool
źródło
13
sudo xxd /dev/diskn | lessjest teraz moją nową ulubioną rzeczą.
krs013
6
... i jest wstępnie zainstalowany w systemie Mac OS X i Linux.
Sridhar Sarnobat
1
Ma to tę przewagę nad „zrzutem heksadecymalnym”, że pokazuje również formularz ASCII z boku, ułatwiając identyfikację lokalizacji, na którą chcę patrzeć.
Paŭlo Ebermann
1
Aby zrzucić dane wyjściowe do pliku tekstowego ASCII w celu przeglądania i wyszukiwania:xxd file > hex_dump_of_file.txt
Gabriel Staples
dodatek: xxd dotyczy nie tylko Linuksa. Myślę, że pochodzi z vimem. Miałem zainstalowany vim na Windowsie i właśnie odkryłem, że mogę używać xxd również w Windowsie.
Tiina,
182
hexdump -C yourfile.bin

chyba że chcesz go oczywiście edytować. Większość dystrybucji Linuksa ma hexdumpdomyślnie (ale oczywiście nie wszystkie).

tyranid
źródło
1
Podoba mi się ten pomysł, ale podobnie jak inne sugestie, wyświetla tylko hex. Oczywiście jest to znacznie bardziej kompaktowe niż binarne, ale mam do czynienia z bardzo małymi plikami, więc preferowany jest binarny. Czy hex to jedyny sposób, w jaki będę mógł zobaczyć plik?
adam_0,
1
Jak mały jest plik? Coś więcej niż kilka bajtów, a i tak zaczniesz szaleć za pomocą kodu binarnego. Hex ma o wiele większy sens w większości rzeczy. Jeśli nie czujesz się komfortowo z hexem, po prostu znajdź bajty, które Cię interesują i przekonwertuj je za pomocą kalkulatora hex.
Duck
3
Muszę się upewnić, że mój plik kompresuje się poprawnie i nie wiem, jak powinien wyglądać w trybie szesnastkowym (rozmiar każdej jednostki to 7 bitów), więc musiałbym ręcznie zgnieść liczby.
adam_0,
czy masz jakieś metody, aby zobaczyć tekst z pliku binarnego? Mogę uzyskać kod HEX, ale jak mam go zdekodować do zwykłego tekstu ludzkiego?
Lukas Liesis
Co z danymi wyjściowymi hexdump -C data.bin | hexdump -C
cyb0k
69
vi your_filename

trafienie esc

Wpisz, :%!xxdaby wyświetlić ciągi szesnastkowe, n, :%!xxd -raby powrócić do normalnej edycji.

kaczka
źródło
Znalazłem :%!xxddodawanie niechcianych znaków, tj. Nowego wiersza do mojego pliku?
Quazi Irfan,
27

Jako rezerwowy zawsze istnieje od -xc filename

Jim Garrison
źródło
13

Jeśli chcesz otworzyć pliki binarne (w CentOS 7):

strings <binary_filename>
Raju
źródło
IMO to najprostsza, najbardziej elegancka ze wszystkich odpowiedzi. Chciałbym móc głosować więcej niż raz.
Olumide,
Najlepsza odpowiedź bez dwóch zdań. Konwertuje to plik binarny na plik JSON. Nie wszyscy bohaterowie noszą peleryny, to prawda
Shubham Pawar
11

sudo apt-get install bless

Bless to narzędzie GUI, które może wyświetlać, edytować, wyszukiwać i wiele więcej. Jest bardzo lekki.

siddiq
źródło
1
Tak. Uznałem, że jest to łatwiejsze niż 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
źródło
2
hd to pseudonim „hexdump -C” ...?
JAR.JAR. beans
@ JAR.JAR.beans Tak, rzeczywiście. Używam go, ponieważ łatwiej jest zapamiętać.
Aalex Gabi
A ponieważ jest domyślnie obecny w niektórych systemach (Debian).
Aalex Gabi
-1

Możesz użyć pliku binarnego hexdump

sudo apt-get install hexdump

hexdump -C yourfile.bin
craken
źródło
1
To tylko duplikat stackoverflow.com/a/1765339/12573645
sportzpikachu