Как просмотреть файлы в двоичном виде из Bash?


289

Я хотел бы просмотреть содержимое файла в текущем каталоге, но в двоичном виде из командной строки. Как мне этого добиться?

Ответы:


493

xxd делает двоичные и шестнадцатеричные.

бен:

xxd -b file

шестигранный:

xxd file

13
sudo xxd /dev/diskn | lessтеперь моя новая любимая вещь.
krs013

6
... и он предустановлен в Mac OS X и в Linux.
Шридхар Сарнобат

1
Это имеет преимущество перед «hexdump», так как оно также показывает форму ASCII сбоку, что упрощает определение местоположения, на которое я хочу посмотреть.
Paŭlo Ebermann

1
И для вывода вывода в текстовый файл ASCII для просмотра и поиска:xxd file > hex_dump_of_file.txt
Габриэль Стейплз

Дополнение: xxd не только для оболочки Linux. Я думаю, что это идет с Vim. Я установил vim на windows и обнаружил, что могу использовать xxd и в windows.
Тийна

182
hexdump -C yourfile.bin

если вы не хотите редактировать это, конечно. Большинство дистрибутивов Linux имеют hexdumpпо умолчанию (но, очевидно, не все).


1
Мне нравится эта идея, но, как и другие предложения, она выводит только гекс. Очевидно, что это намного более компактно, чем двоичные файлы, но я имею дело с очень маленькими файлами, поэтому двоичные файлы предпочтительнее. Является ли hex единственным способом, которым я смогу просмотреть файл?
adam_0

1
Ну как маленький файл? Что-нибудь более пары байтов, и вы в любом случае начнете сходить с ума. Гекс имеет гораздо больше смысла для большинства вещей. Если вам неудобно использовать шестнадцатеричный код, просто найдите нужные вам байты и конвертируйте их с помощью шестнадцатеричного калькулятора.
Утка

3
Мне нужно убедиться, что мой файл сжимается правильно, и я не знаю, как он должен выглядеть в шестнадцатеричном формате (размер каждой единицы равен 7 битам), поэтому мне пришлось бы сокращать числа вручную.
adam_0

У вас есть какие-либо методы, чтобы увидеть текст из двоичного файла? Я могу получить код HEX, но как мне декодировать его в обычный человеческий текст?
Лукас Лиезис

Как насчет вывода hexdump -C data.bin | hexdump -C
cyb0k

70
vi your_filename

ударить esc

Введите, :%!xxdчтобы просмотреть шестнадцатеричные строки, n, :%!xxd -rчтобы вернуться к обычному редактированию.


Я нашел :%!xxdдобавление нежелательных символов, т.е. новой строки в мой файл?
Quazi Irfan


13

Если вы хотите открыть бинарные файлы (в CentOS 7):

strings <binary_filename>

ИМО это самый простой и элегантный из всех ответов. Хотел бы я поднять это более одного раза.
Olumide

Лучший ответ от руки. Это преобразует двоичный файл в файл JSON. Не все герои носят накидки, это правда
Шубхам Павар

11

sudo apt-get install bless

Bless - графический инструмент, который может просматривать, редактировать, искать и многое другое. Это очень легкий вес.


1
Да. Я обнаружил, что это проще, чем Vim.
Пол


3
$ echo -n 'Hello world!' | hd
00000000  48 65 6c 6c 6f 20 77 6f  72 6c 64 21              |Hello world!|
0000000c

2
HD это псевдоним "hexdump -C" ...?
JAR.JAR.beans

@ JAR.JAR.beans Да, действительно. Я использую это, потому что это легче запомнить.
Аалекс Габи

И потому что он присутствует по умолчанию в некоторых системах (Debian).
Aalex Gabi


-1

Вы можете использовать двоичный файл hexdump

sudo apt-get install hexdump

hexdump -C yourfile.bin

1
Это просто
копия
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.