408

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?

14 Answers 14

706

xxd does both binary and hexadecimal.

bin:

xxd -b file

hex:

xxd file
Sign up to request clarification or add additional context in comments.

6 Comments

sudo xxd /dev/diskn | less is now my new favorite thing.
...and it's preinstalled on Mac OS X and on Linux.
This 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.
And to dump the output to an ASCII text file for perusing & searching: xxd file > hex_dump_of_file.txt
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.
|
205
hexdump -C yourfile.bin

unless you want to edit it of course. Most linux distros have hexdump by default (but obviously not all).

6 Comments

I 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?
Well 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.
I 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.
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?
hexdump -C does not show binary output. This doesn't answer the question.
|
82
vi your_filename

hit esc

Type :%!xxd to view the hex strings, the n :%!xxd -r to return to normal editing.

3 Comments

I've found :%!xxd adding unwanted characters i.e. new line to my file?
This runs xxd to actually do the viewing right? Why involve vi at all?
One reason: vi adds interactivity whereas xxd just prints the lines.
43

As a fallback there's always od -xc filename

Comments

13

sudo apt-get install bless

Bless is GUI tool which can view, edit, seach and a lot more. Its very light weight.

3 Comments

Yes. I found this to be easier than Vim.
beware, it comes with mono
Working in centos using snap: sudo snap install bless-unofficial
13

If you want to open binary files (in CentOS 7):

strings <binary_filename>

3 Comments

IMO this is the simplest most elegant of all the answers. I wish I could upvote it more than once.
The best answer hands down. This converts the Binary file into a JSON file. Not all heros wear capes,that is true
It 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.
13

Hexyl formats nicely: sudo apt install hexyl

enter image description here

1 Comment

very nice!/////
7
$ echo -n 'Hello world!' | hd
00000000  48 65 6c 6c 6f 20 77 6f  72 6c 64 21              |Hello world!|
0000000c

3 Comments

hd is an alias to "hexdump -C" ... ?
@JAR.JAR.beans Yes indeed. I use it because it is easier to remember.
And because it is present by default on some systems (Debian).
5

To get the output all in a single line in Hexadecimal:

xxd -p yourfile.bin | tr -d '\n'

Comments

3

See Improved Hex editing in the Vim Tips Wiki.

Comments

2

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

Comments

2

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

Comments

1

I usually do

hexdump -Xv /path/to/the_file.bin | less

Optionally, one can use -C to see corresponding characters in addition to hex output, or try -x or -o instead of -X just for fun. Option -v is for non-squeezing output as described in hexdump --help. Omitting | less will drop the output to the console instead of more convenient and interactive less.

P.S.: If which hexdump does not give you any hint, on Arch-based distros you can find hexdump location by doing sudo pacman -Fy (if your package DB is not fresh) followed by pacman -F hexdump to find the package(s) containing utils named hexdump. If the latter gives you something meaningful (like system/util-linux 2.40.2-1) in the first row, you can invoke

sudo pacman `pacman -Fq hexdump | head -n 1`

and thus install hexdump to your system.

Comments

-1

You can use hexdump binary file

sudo apt-get install hexdump

hexdump -C yourfile.bin

1 Comment

This is just a duplicate of stackoverflow.com/a/1765339/12573645

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.