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ąć?

Odpowiedzi:


492

xxd robi zarówno binarny, jak i szesnastkowy.

kosz:

xxd -b file

klątwa:

xxd file

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).


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.


Znalazłem :%!xxddodawanie niechcianych znaków, tj. Nowego wiersza do mojego pliku?
Quazi Irfan,


13

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

strings <binary_filename>

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.


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

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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.