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

289

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

adam_0
источник

Ответы:

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
27

Как запасной вариант всегда есть od -xc filename

Джим гаррисон
источник
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
craken
источник
1
Это просто
копия