I would like to view the contents of a file in the current directory, but in binary from the command line. How can I achieve this?
13 Answers

- 32,039
- 22
- 142
- 171

- 6,724
- 1
- 15
- 6
-
15`sudo xxd /dev/diskn | less` is now my new favorite thing. – krs013 Jan 30 '15 at 18:39
-
7...and it's preinstalled on Mac OS X and on Linux. – Sridhar Sarnobat Sep 05 '17 at 22:36
-
1This has the advantage over "hexdump" that it also shows the ASCII form on the side, making it easier to identify the location I want to look at. – Paŭlo Ebermann Mar 05 '18 at 12:46
-
1And to dump the output to an ASCII text file for perusing & searching: `xxd file > hex_dump_of_file.txt` – Gabriel Staples Jan 31 '19 at 00:32
-
a supplment: xxd is not only for linux shell. I think it comes with vim. I had vim installed on windows, and I just found I can use xxd in windows too. – Tiina Sep 20 '19 at 07:40
-
You could even play with binary files in [tag:bash]: [Read a file by bytes in BASH](https://stackoverflow.com/a/13890319/1765658) – F. Hauri - Give Up GitHub Apr 23 '22 at 12:58
hexdump -C yourfile.bin
unless you want to edit it of course. Most linux distros have hexdump
by default (but obviously not all).
-
1I like this idea, but like the other suggestions it only outputs hex. Obviously this is much more compact than binary, but I am dealing with very small files so binary is preferred. Is hex the only way I will be able to view the file? – adam_0 Nov 19 '09 at 18:21
-
1Well how small is the file? Anything over a couple of bytes and you will start to lose your mind using binary anyway. Hex makes much more sense for most things. If you are uncomfortable with hex just locate the bytes in which you are interested and convert them using a hex calculator. – Duck Nov 19 '09 at 18:38
-
3I need to make sure that my file is compressing correctly and I don't know what it should look like in hex (the size of each unit is 7 bits), so I would have to crunch the numbers by hand. – adam_0 Nov 19 '09 at 18:38
-
do you have any methods to see text from binary file? I can get HEX code, but how should i decode it to normal human text? – Lukas Liesis Aug 22 '14 at 13:54
-
-
2`hexdump -C` does not show binary output. This doesn't answer the question. – Daniel Sep 28 '18 at 18:22
vi your_filename
hit esc
Type :%!xxd
to view the hex strings, the n :%!xxd -r
to return to normal editing.

- 6,273
- 9
- 40
- 50

- 26,924
- 5
- 64
- 92
-
I've found `:%!xxd` adding unwanted characters i.e. new line to my file? – Quazi Irfan Dec 06 '16 at 03:51
sudo apt-get install bless
Bless is GUI tool which can view, edit, seach and a lot more. Its very light weight.

- 203
- 3
- 6
If you want to open binary files (in CentOS 7):
strings <binary_filename>
-
IMO this is the simplest most elegant of all the answers. I wish I could upvote it more than once. – Olumide Mar 20 '19 at 12:22
-
The best answer hands down. This converts the Binary file into a JSON file. Not all heros wear capes,that is true – Shubham Pawar Apr 14 '20 at 14:59
-
4It doesn't convert it into JSON file. It only finds the printable strings in an object and show you. It doesn't convert the binary file into text or any format at all. – Shai Alon Sep 30 '20 at 09:44
$ echo -n 'Hello world!' | hd
00000000 48 65 6c 6c 6f 20 77 6f 72 6c 64 21 |Hello world!|
0000000c

- 1,525
- 1
- 18
- 32
-
2
-
@JAR.JAR.beans Yes indeed. I use it because it is easier to remember. – Aalex Gabi Oct 18 '16 at 14:19
-
You can open emacs (in terminal mode, using emacs -nw
for instance), and then use Hexl mode: M-x hexl-mode
.
https://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Binary-Files.html

- 2,190
- 1
- 21
- 33
To get the output all in a single line in Hexadecimal:
xxd -p yourfile.bin | tr -d '\n'

- 61
- 3
to convert a file to its binary codes(hexadecimal representation) we say:
xxd filename #
e.g:
xxd hello.c #
to see all the contents and codes in a binary file , we could use commands like readelf
and objdump
, hexdump
,... .
for example if we want to see all the convert all the contents of a binary file(executable, shared libraries, object files) we say:
hexdump binaryfilename
e.g.
hexdump /bin/bash
but readelf is the best utility for analyzing elf(executable and linking format) files. so if we say:
readelf -a /bin/bash
all the contents in the binary file bash would be shown to us, also we could provide different flags for readelf to see all the sections and headers of an elf file separately, for example if we want to see only the elf header we say:
readelf -h /bin/bash
for reading all the segments of the file:
readelf -l /bin/bash
for reading all the sections of the file:
readelf -S /bin/sh
but again as summary , for reading a normal file like "hello.c" and a binary file like bash in path /bin/bash in linux we say:
xxd hello.c
readelf -a /bin/bash
You can use hexdump binary file
sudo apt-get install hexdump
hexdump -C yourfile.bin

- 1,411
- 11
- 16
-
1This is just a duplicate of https://stackoverflow.com/a/1765339/12573645 – sportzpikachu Mar 05 '20 at 08:47