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

214

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

Теги:
macos
terminal
binary

11 ответов

352
Лучший ответ

xxd выполняет как двоичные, так и шестнадцатеричные

бен:

xxd -b file

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

xxd file
  • 10
    sudo xxd /dev/diskn | less сейчас моя новая любимая вещь.
  • 5
    ... и он предустановлен в Mac OS X и в Linux.
Показать ещё 2 комментария
152
hexdump -C yourfile.bin

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

  • 1
    Мне нравится эта идея, но, как и другие предложения, она выводит только гекс. Очевидно, что это намного более компактно, чем двоичные файлы, но я имею дело с очень маленькими файлами, поэтому двоичные файлы предпочтительнее. Является ли hex единственным способом, которым я смогу просмотреть файл?
  • 1
    Ну как маленький файл? Что-нибудь более пары байтов, и вы в любом случае начнете сходить с ума. Гекс имеет больше смысла для большинства вещей. Если вам неудобно использовать шестнадцатеричный код, просто найдите интересующие вас байты и конвертируйте их с помощью шестнадцатеричного калькулятора.
Показать ещё 4 комментария
64
vi your_filename

esc

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

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

В качестве резерва всегда всегда od -xc filename

  • 2
    это в шестнадцатеричном, а не в мусорном ведре ...
10

sudo apt-get install bless

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

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

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

strings <binary_filename>
  • 0
    ИМО это самый простой и элегантный из всех ответов. Хотел бы я поднять это более одного раза.
3
2
$ 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" ...?
  • 0
    @ JAR.JAR.beans Да, действительно. Я использую это, потому что это легче запомнить.
Показать ещё 1 комментарий
0

Если вы попытаетесь получить доступную для чтения информацию с помощью терминала, попробуйте использовать эту команду:

hexdump -C <file> | cat | awk '{print$18}'

или добавить трубопровод vim

hexdump -C <file> | cat | awk '{print$18}' | vim
0

Вы можете открыть emacs (в режиме терминала, например, с помощью emacs -nw), а затем использовать режим Hexl: M-x hexl-mode.

https://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Binary-Files.html

0

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

sudo apt-get install hexdump

hexdump -C yourfile.bin
  • 0
    GNOME! = Терминал
  • 0
    Да. Я уже обновил пост. Спасибо
Сообщество Overcoder
Наверх
Меню