bashからバイナリでファイルを表示する方法は?


289

現在のディレクトリにあるファイルの内容を、コマンドラインからバイナリで表示したいと思います。どうすればこれを達成できますか?

回答:


492

xxd 2進数と16進数の両方を実行します。

置き場:

xxd -b file

16進数:

xxd file

13
sudo xxd /dev/diskn | less今は私の新しいお気に入りです。
krs013 2015年

6
... Mac OS XとLinuxにプリインストールされています。
Sridhar Sarnobat

1
これは、 "hexdump"に比べて、ASCII形式が側面に表示されるという利点があり、見たい場所を簡単に特定できます。
–PaŭloEbermann 2018

1
そして、出力を閲覧および検索するためにASCIIテキストファイルにダンプするには:xxd file > hex_dump_of_file.txt
Gabriel Staples

補足:xxdはLinuxシェルだけのものではありません。vimに付属していると思います。Windowsにvimをインストールしましたが、Windowsでもxxdを使用できることがわかりました。
Tiina

182
hexdump -C yourfile.bin

もちろんそれを編集したいのでなければ。ほとんどのLinuxディストリビューションにはhexdumpデフォルトで(ただし、すべてではない)があります。


1
私はこのアイデアが好きですが、他の提案と同様に、16進数のみを出力します。明らかにこれはバイナリよりもはるかにコンパクトですが、私は非常に小さなファイルを扱っているので、バイナリが推奨されます。ファイルを表示できるのは16進法だけですか?
adam_0 2009年

1
さて、ファイルはどれくらい小さいですか?数バイトを超えると、とにかくバイナリを使用して頭を悩ませ始めます。Hexは、ほとんどの場合、はるかに意味があります。hexに不快な場合は、関心のあるバイトを見つけ、hex計算機を使用してそれらを変換してください。
ダック

3
私のファイルが正しく圧縮されていることを確認する必要があり、16進数で各ファイルがどのように見えるかわからない(各ユニットのサイズは7ビットです)ため、手動で数値をクランチする必要があります。
adam_0 2009年

バイナリファイルのテキストを表示する方法はありますか?HEXコードを取得できますが、通常の人間のテキストにデコードするにはどうすればよいですか?
Lukas Liesis

hexdump -C data.binの出力はどうですか?hexdump -C
cyb0k 2016年

69
vi your_filename

ヒット esc

:%!xxd16進文字列を表示するにはn :%!xxd -rを入力し、通常の編集に戻るにはn を入力します。


:%!xxdファイルに不要な文字、つまり改行を追加しているのを見つけましたか?
Quazi Irfan 2016


13

バイナリファイルを開く場合(CentOS 7の場合):

strings <binary_filename>

IMOこれはすべての答えの中で最も単純で最もエレガントです。私はそれを複数回賛成できればいいのに。
Olumide

最良の答えは受け渡しです。これにより、バイナリファイルがJSONファイルに変換されます。すべての
ヘロ

11

sudo apt-get install bless

Blessは、表示、編集、検索などを行うことができるGUIツールです。その非常に軽量。


1
はい。これはVimよりも簡単であることがわかりました。
Paulb 2016


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はい、確かに。覚えやすいので使っています。
Aalex Gabi 2016

また、一部のシステム(Debian)ではデフォルトで存在するためです。
Aalex Gabi 2018


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.