The od Command in Linux – How to Perform an Octal Dump in Linux?

The od command in Linux converts displays the contents of a file in different formats. Octal is the default format, however, it is not the only format under od command.

What is the od command in Linux?

od is short for Octal Dump and developers use this command to debug scripts in Linux. The main functionality of od command is that it helps in understanding data that otherwise is not readable for humans. If you have data in plaintext, you can always use the echo command.

Octal is a base-8 number system that can represent binary numbers and other numbers in a shorter form.

The different options to use along with od command are:

  • -c: It displays the content in character format.
  • -b: It displays the content in octal format.
  • -An: It displays the content with no offset information.
  • -j: It displays output after skipping some characters.
  • -i: It displays the output as Decimal Integer.
  • -x: It displays content as two-byte hexadecimal.
  • -o: It displays content as two-byte octal.

The text for the file in examples below is:

Hello
World
!
Hello World
100
101
102
{
}
Screenshot 2020 08 12 At 8.22.35 PM
Content of the file

Using od command to display different formats

We can use the od command to display outputs in a variety of formats. Let’s see the different formats here.

1. Display as Characters

To display in character format use -c flag :

$ od -c filename.txt 
Od with -c flag

We can see that this command displays all the characters. \n represents new line in the output. The first number in each row is the bit offset in file. Byte offset is the number of character that exists up until that point counting from the beginning of the file.

2. Display as Octal

To display content in octal format use -b flag along with od command.

$ od -b filename.txt 
Octal
Octal

To understand the output better, combine it with -c flag. Doing so, shows both the outputs together.

$ od -bc filename.txt 
Od -bc

The output acts like a conversion chart between the two formats.

3. Display as Decimal Integer

Using -i flag along with od command displays the output in decimal integer format.

$ od -i filename.txt 
Od I

To understand the output better, combine it with -c flag.

$ od -ic filename.txt 
Od Ic

4. Display Two byte hexadecimal 

To display the content of the file in two byte hexadecimal use –x flag along with od command :

$ od -x filename.txt 
Od X

Hexadecimal is base 16. To understand the output better, combine it with -c flag.

$ od -xc filename.txt 
Od Xc

5. Display as Two byte octal

To display the output in two byte octal format use the -o flag along with od command.

$ od -o filename.txt
Two Byte Octal
Two Byte Octal

To understand this format better, we can combine it with -c and -b.

$ od -oc filename.txt
Od Oc
$ od -ob filename.txt
Od Bo

We can see that two bytes from regular octal output make one unit of two byte octal. Hence the name.

6. Display without byte offset

Byte offset is the first column in output by default. To display the output of od command without the byte offset use –An flag.

$ od -An filename.txt
No Byte Offset
No Byte Offset

-An flag works with other formats as well.

Here we use it with -c flag that displays output in character format.

$ od -An -c filename.txt
No Byte Offset With Character
No Byte Offset With Character

7. Skipping bytes in Display

To skip some bytes in the output, use the -j flag along with the number of bytes you want to skip.

$ od -j3 filename.txt
Skipping Bytes
Skipping Bytes

-j3 skips the first three bytes.

Let’s combine this with -c flag to make sense of the output.

$ od -j3 -c filename.txt
Skipping Bytes With C

We can see that od command skips first 3 and 6 bytes respectively. We can even combine -An flag with -j flag.

$ od -An -j6 -c filename.txt
Skipping Bytes With An

8. Displaying selective bytes

This operation is opposite to the one above. This displays only a particular number of bytes in the output. The flag for displaying selective bytes is -N.

$ od -An -N6 -c filename.txt
Displaying Selectivebytes

Only the first 6 and 11 bytes are there in the output respectively.

Conclusion

In this tutorial, we covered od command in Linux and the different formats that it can display a file in. Combining two flags together gives a better understanding of the output. For more information on od command, refer to its man page.