od - Dump a file in a specified format
Format
- od [-v] [-A addr_fmt] [-j num [bkm]] [-j num] [-T] [-t type_string] [file ... ]
- od [-bcDdhOoSsTvXx] [file] [[+]offset[.][b]]
Description
od (octal dump) dumps a file to the standard output in a format specified by command-line options. The default format is octal words. You can use combinations of options to generate multiple formats with the requested representation of each byte vertically aligned. The file seek address (in octal) precedes each line of new data.
od recognizes two syntax forms. The first one conforms to POSIX. If you choose the first form, od displays files from the list file one at a time. If no file appears on the command line, od reads the standard input.
For a summary of the UNIX03 changes to this command, see Shell commands changed for UNIX03.
Options
- -v
- Displays all lines. Typically, od does
not display multiple lines that differ only in the address. It displays
the first line with a single
*
under it. to show that any subsequent lines are the same. - -A addr_fmt
- Specifies the format that od uses to display the address field. addr_fmt can be d (decimal), o (octal), x (hexadecimal), or n (do not display address). The default is -A o.
- -j num
- Skips num bytes from the beginning of
the file. If you precede num with
0X
or0x
, od interprets it as hexadecimal. If you precede it with0
, od interprets it as octal; otherwise, od assumes that it is decimal. You can also append b, k, or m to num to indicate 512-byte blocks, kilobytes, or megabytes instead of bytes. If num is hexadecimal, any appended b is considered to be the final hexadecimal digit rather than 512-byte block.Be careful with this option when working with double-byte characters. If byte num+1 (the starting byte, after skipping num bytes) is not the first byte of a character, od proceeds as though it is, resulting in a misinterpretation of that and subsequent characters. This misinterpretation continues until od encounters a <newline>. Then it is once again synchronized with the first byte of a double-byte character.
- -N num
- Processes a maximum of num bytes. Be
careful with this option when working with double-byte characters.
If od is processing a double-byte character
when it encounters the numth byte and this
byte is not the last byte of the character, od displays
???
instead of the character. - -T
- Enables automatic conversion for tagged files. This option is mutually exclusive with -t a. For more information about Converting files between code pages andSetting up Enhanced ASCII in z/OS UNIX System Services Planning.
- -t type_string
- Specifies the output format. type_string can contain the following
format characters:
- a
- Named characters from the ISO 646 character set. Data is interpreted as if it was coded in the ISO 646 character set.
- c
- Characters. od displays nonprintable characters as backslash sequences and
displays printable double-byte characters properly.
A printable double-byte character is displayed in the first byte position, and the remaining positions to the end of the character display ** to indicate the double-byte character. Nonprintable double-byte characters are displayed using a 3-digit octal number to represent each byte.
Also, incorrect double-byte sequences are displayed with
???
for each incorrect byte. - d
- Signed decimal. A one-digit number may follow d telling
od how many bytes to use. This must correspond to the size of a
char (1-byte character), a short (2 byte short),
an int (4 byte integer), a long (4 bytes long,
which is currently the same as integer on z/OS), or a long long (8 byte integer). The default size is the size of an
int. A symbolic size character can follow d,
rather than the number of bytes. These have the following meaning:
- C
- Corresponds to number of bytes in a char
- S
- Corresponds to number of bytes in a short int
- I
- Corresponds to the number of bytes in an int
- L
- Corresponds to the number of bytes in a long int
- LL
- Corresponds to the number of bytes in a long long int
- f
- Hexadecimal floating-point. A one-digit number can follow f, telling
od how many bytes to use. This must correspond to the size of a
float, double, or long
double. The default size is the size of a double. A symbolic
size character can follow f, rather than the number of bytes. These have
the following meaning:
- F
- Corresponds to size of float
- D
- Corresponds to size of double
- L
- Corresponds to size of long double
- F
- IEEE binary floating-point. A one-digit number can follow F, telling
od how many bytes to use. This must correspond to the size of a
float, double, or long
double. The default size is the size of a double. A symbolic
size character can follow F, rather than the number of bytes. These have
the following meaning:
- F
- Corresponds to size of float
- D
- Corresponds to size of double
- L
- Corresponds to size of long double
- o
- Octal. A one-digit number can follow o, telling od
how many bytes to use. This must correspond to the size of a char (1 byte
character), a short (2 byte short), an int (4
byte integer), a long (4 byte long, which is currently the same as integer
on z/OS), or a long
long (8 byte integer). The default size is the size of an
int. A symbolic size character can follow o,
rather than the number of bytes. These have the following meaning:
- C
- Corresponds to number of bytes in a char
- S
- Corresponds to number of bytes in a short int
- I
- Corresponds to the number of bytes in an int
- L
- Corresponds to the number of bytes in a long int
- LL
- Corresponds to the number of bytes in a long long int
- u
- Unsigned decimal. A one-digit number can follow u, telling
od how many bytes to use. This must correspond to the size of a
char (1 byte character), a short (2 byte short),
an int (4 byte integer), a long (4 byte long,
which is currently the same as integer on z/OS), or a long long (8 byte integer). The default size is the size of an
int. A symbolic size character can follow u,
rather than the number of bytes. These have the following meaning:
- C
- Corresponds to number of bytes in a char
- S
- Corresponds to number of bytes in a short int
- I
- Corresponds to the number of bytes in an int
- L
- Corresponds to the number of bytes in a long int
- LL
- Corresponds to the number of bytes in a long long int
- x
- Hexadecimal. A one-digit number can follow x, telling
od how many bytes to use. This must correspond to the size of a
char (1 byte character), a short (2 byte short),
an int (4 byte integer), a long (4 byte long,
which is currently the same as integer on z/OS), or a long long (8 byte integer). The default size is the size of an
int. A symbolic size character can follow x,
rather than the number of bytes. These have the following meaning:
- C
- Corresponds to number of bytes in a char
- S
- Corresponds to number of bytes in a short int
- I
- Corresponds to the number of bytes in an int
- L
- Corresponds to the number of bytes in a long int
- LL
- Corresponds to the number of bytes in a long long int
Multiple format characters can appear in one type_string and multiple -t options can appear on the command line. If there is no -t option, the default is -t oS.
-t a is mutually exclusive with the -T option.
The second form of od is
the historical (Berkeley Software Distribution) implementation of
the command. If you use this form, you can specify only a single input file.
If you do not give a file argument, od reads
the standard input. You can supply an offset, but you must precede
it with a plus sign (+
) to distinguish it from a
file name if no file is given. Giving an offset causes a seek to a
position in the file where output begins. If the offset ends in a
period (.
), od considers
it to be decimal; otherwise, od considers
it octal. If you follow the offset with a b
, od multiplies
it by the block size of 512 bytes. The format of the offset determines
the format of the address; that is, if it is interpreted as decimal,
the addresses are displayed in decimal.
The od command does not work on a file whose file name starts with either a digit or a plus (+) sign, unless the -A, -N, -j, or -t options are used.
- -b
- Bytes in octal format
- -c
- Bytes as characters
- -D
- Unsigned decimal longs (4 bytes)
- -d
- Unsigned decimal words (2 bytes)
- -h
- Bytes in hexadecimal format
- -O
- Unsigned octal longs
- -o
- Unsigned octal words
- -S
- Signed decimal longs
- -s
- Signed decimal words
- -T
- Enables automatic conversion for tagged files. This option is mutually exclusive with -t a. For more information, Converting files between code pages in z/OS UNIX System Services Planning.
- -v
- Displays all lines. Typically, od does
not display multiple lines that differ only in the address. It displays
the first line with a single
*
under it. to show that any subsequent lines are the same. - -X
- Unsigned hexadecimal longs
- -x
- Unsigned hexadecimal words
Localization
- LANG
- LC_ALL
- LC_CTYPE
- LC_MESSAGES
- LC_NUMERIC
- LC_SYNTAX
- NLSPATH
Exit values
0
- Successful completion
1
- Failure due to any of the following:
- Inability to open the input file
- Badly formed offset
- Seek or read error on the input file
2
- Failure due to any of the following:
- Incorrect command-line argument
- The wrong number of command-line arguments
- Incorrect format character
- Incorrect size modifier for format character
Portability
POSIX.2, X/Open Portability Guide, UNIX systems.
The options to operate on longs (-OSXD) and the hexadecimal byte (-h) are extensions to the POSIX standard.
The -T option is an extension to the POSIX standard.
Related information
dd