如何从bash查看二进制文件?


289

我想查看当前目录中文件的内容,但可以从命令行以二进制形式查看。我该如何实现?

Answers:


491

xxd 同时执行二进制和十六进制。

斌:

xxd -b file

十六进制:

xxd file

13
sudo xxd /dev/diskn | less现在是我最喜欢的东西。
krs013

6
...并且已预先安装在Mac OS X和Linux上。
Sridhar Sarnobat

1
与“ hexdump”相比,它的优势在于它还在侧面显示了ASCII格式,从而使识别我要查看的位置更加容易。
圣保罗Ebermann

1
并将输出转储到ASCII文本文件中以供细读和搜索:xxd file > hex_dump_of_file.txt
Gabriel Staples'Jan

补充:xxd不仅适用于Linux shell。我认为它带有vim。我在Windows上安装了vim,我发现我也可以在Windows中使用xxd。
Tiina

182
hexdump -C yourfile.bin

除非您当然要编辑它。hexdump默认情况下,大多数Linux发行版都具有(但显然不是全部)。


1
我喜欢这个主意,但像其他建议一样,它只输出十六进制。显然,这比二进制文件要紧凑得多,但是我正在处理非常小的文件,因此首选二进制文件。十六进制是查看文件的唯一方法吗?
adam_0

1
那么文件有多小?任何超过几个字节的内容,无论如何您都会开始使用二进制文件。在大多数情况下,十六进制意义更大。如果您对十六进制不满意,只需找到您感兴趣的字节并使用十六进制计算器将其转换即可。
鸭子

3
我需要确保文件正确压缩,并且我不知道它的十六进制格式(每个单元的大小为7位),因此我必须手动处理数字。
adam_0

您有什么方法可以查看二进制文件中的文本?我可以获得十六进制代码,但是我应该如何将其解码为普通的人类文字呢?
Lukas Liesis 2014年

关于hexdump -C data.bin的输出呢?hexdump -C
cyb0k

69
vi your_filename

击中 esc

键入:%!xxd以查看十六进制字符串,键入n :%!xxd -r以返回正常编辑。


我发现在文件中:%!xxd添加了多余的字符,即换行了吗?
Quazi Irfan


12

如果要打开二进制文件(在CentOS 7中):

strings <binary_filename>

IMO这是所有答案中最简单最优雅的。我希望我可以不止一次投票。
Olumide

最好的答案不言而喻。这会将Binary文件转换为JSON文件。并非所有英雄都披着斗篷,这是真的
Shubham Pawar

11

sudo apt-get install bless

Bless是GUI工具,可以查看,编辑,搜索和更多其他功能。它的重量很轻。


1
是。我发现这比Vim容易。
Paulb '16




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.