Como visualizar arquivos em binário a partir do bash?

289

Eu gostaria de visualizar o conteúdo de um arquivo no diretório atual, mas em binário na linha de comando. Como posso conseguir isso?

adam_0
fonte

Respostas:

492

xxd faz binário e hexadecimal.

bin:

xxd -b file

hex:

xxd file
Emilio Bool
fonte
13
sudo xxd /dev/diskn | lessagora é minha nova coisa favorita.
precisa saber é o seguinte
6
... e está pré-instalado no Mac OS X e no Linux.
Sridhar Sarnobat 5/17/17
1
Isso tem a vantagem sobre o "hexdump", que também mostra o formulário ASCII ao lado, facilitando a identificação do local que eu quero olhar.
Paŭlo Ebermann
1
E para despejar a saída em um arquivo de texto ASCII para ler e pesquisar:xxd file > hex_dump_of_file.txt
Gabriel Staples
um suplemento: o xxd não é apenas para o shell linux. Eu acho que vem com o vim. Eu tinha o vim instalado no Windows e descobri que também posso usar o xxd no Windows.
Tiina
182
hexdump -C yourfile.bin

a menos que você queira editá-lo, é claro. A maioria das distribuições Linux tem hexdumppor padrão (mas obviamente não todas).

tiranídeo
fonte
1
Eu gosto dessa idéia, mas como as outras sugestões, ela só gera hexadecimal. Obviamente, isso é muito mais compacto que o binário, mas eu estou lidando com arquivos muito pequenos, então o binário é o preferido. Hex é a única maneira de poder visualizar o arquivo?
adam_0
1
Bem, quão pequeno é o arquivo? Qualquer coisa acima de alguns bytes e você começará a perder a cabeça usando o binário de qualquer maneira. Hex faz muito mais sentido para a maioria das coisas. Se você não se sentir à vontade com o hex, localize os bytes nos quais está interessado e converta-os usando uma calculadora hexadecimal.
1938 Duck
3
Preciso ter certeza de que meu arquivo está compactando corretamente e não sei como ele deve estar em hexadecimal (o tamanho de cada unidade é 7 bits), para que eu tenha que processar os números manualmente.
21420 adam_0
você tem algum método para ver o texto do arquivo binário? Posso obter o código HEX, mas como devo decodificá-lo para texto humano normal?
Lukas Liesis
E quanto à saída do hexdump -C data.bin | hexdump -C
cyb0k
69
vi your_filename

acertar esc

Digite :%!xxdpara visualizar as seqüências de caracteres hexadecimais, n :%!xxd -rpara retornar à edição normal.

Pato
fonte
Descobri :%!xxdadicionar caracteres indesejados, ou seja, uma nova linha ao meu arquivo?
Quazi Irfan
27

Como substituto, sempre há od -xc filename

Jim Garrison
fonte
13

Se você deseja abrir arquivos binários (no CentOS 7):

strings <binary_filename>
Raju
fonte
Na IMO, essa é a mais simples e elegante de todas as respostas. Eu gostaria de poder votar mais de uma vez.
Olumide
A melhor resposta mãos para baixo. Isso converte o arquivo binário em um arquivo JSON. Nem todos os heróis usam capas, isso é verdade
Shubham Pawar 14/04
11

sudo apt-get install bless

Bless é uma ferramenta GUI que pode visualizar, editar, pesquisar e muito mais. É muito leve.

siddiq
fonte
1
Sim. Achei isso mais fácil do que o Vim.
Paulb 17/02/16
3
$ echo -n 'Hello world!' | hd
00000000  48 65 6c 6c 6f 20 77 6f  72 6c 64 21              |Hello world!|
0000000c
Aalex Gabi
fonte
2
hd é um apelido para "hexdump -C" ...?
JAR.JAR.beans
@ JAR.JAR.beans Sim, de fato. Eu uso porque é mais fácil de lembrar.
Aalex Gabi
E porque está presente por padrão em alguns sistemas (Debian).
Aalex Gabi
-1

Você pode usar o arquivo binário hexdump

sudo apt-get install hexdump

hexdump -C yourfile.bin
enlouquecer
fonte
1
Esta é apenas uma duplicata do stackoverflow.com/a/1765339/12573645
sportzpikachu