---
name: "od"
section: "1"
platform: "macos"
package: "shell_cmds"
version: "329"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/od"
---

# od(1)

octal, decimal, hex, ASCII dump

## NAME

**od** – octal, decimal, hex, ASCII dump

## SYNOPSIS

**od** \[**-aBbcDdeFfHhIiLlOosvXx**\] \[**-A** *base*\] \[**-j** *skip*\] \[**-N** *length*\] \[**-t** *type*\] \[\[**+**\]*offset*\[**.**\]\[**Bb**\]\] \[*file ...*\]

## DESCRIPTION

The **od** utility is a filter which displays the specified files, or standard input if no files are specified, in a user specified format.

The options are as follows:

- **-A** *base*

  Specify the input address base. The argument *base* may be one of **d**, **o**, **x** or **n**, which specify decimal, octal, hexadecimal addresses or no address, respectively.

- **-a**

  Output named characters. Equivalent to **-t** **a**.

- **-B**, **-o**

  Output octal shorts. Equivalent to **-t** **o2**.

- **-b**

  Output octal bytes. Equivalent to **-t** **o1**.

- **-c**

  Output C-style escaped characters. Equivalent to **-t** **c**.

- **-D**

  Output unsigned decimal ints. Equivalent to **-t** **u4**.

- **-d**

  Output unsigned decimal shorts. Equivalent to **-t** **u2**.

- **-e**, **-F**

  Output double-precision floating point numbers. Equivalent to **-t** **fD**.

- **-f**

  Output single-precision floating point numbers. Equivalent to **-t** **fF**.

- **-H**, **-X**

  Output hexadecimal ints. Equivalent to **-t** **x4**.

- **-h**, **-x**

  Output hexadecimal shorts. Equivalent to **-t** **x2**.

- **-I**, **-L**, **-l**

  Output signed decimal longs. Equivalent to **-t** **dL**.

- **-i**

  Output signed decimal ints. Equivalent to **-t** **dI**.

- **-j** *skip*

  Skip *skip* bytes of the combined input before dumping. The number may be followed by one of **b**, **k**, **m** or **g** which specify the units of the number as blocks (512 bytes), kilobytes, megabytes and gigabytes, respectively.

- **-N** *length*

  Dump at most *length* bytes of input.

- **-O**

  Output octal ints. Equivalent to **-t** **o4**.

- **-s**

  Output signed decimal shorts. Equivalent to **-t** **d2**.

- **-t** *type*

  Specify the output format. The *type* argument is a string containing one or more of the following kinds of type specifiers:

  - **a**

    Named characters (ASCII). Control characters are displayed using the following names:

    | | | | | | |
    | --- | --- | --- | --- | --- | --- |
    | 000 NUL | 001 SOH | 002 STX | 003 ETX | 004 EOT | 005 ENQ |
    | 006 ACK | 007 BEL | 008 BS | 009 HT | 00A NL | 00B VT |
    | 00C FF | 00D CR | 00E SO | 00F SI | 010 DLE | 011 DC1 |
    | 012 DC2 | 013 DC3 | 014 DC4 | 015 NAK | 016 SYN | 017 ETB |
    | 018 CAN | 019 EM | 01A SUB | 01B ESC | 01C FS | 01D GS |
    | 01E RS | 01F US | 020 SP | 07F DEL |  |  |

  - **c**

    Characters in the default character set. Non-printing characters are represented as 3-digit octal character codes, except the following characters, which are represented as C escapes:

    - NUL

      \\0

    - alert

      \\a

    - backspace

      \\b

    - newline

      \\n

    - carriage-return

      \\r

    - tab

      \\t

    - vertical tab

      \\v

      Multi-byte characters are displayed in the area corresponding to the first byte of the character. The remaining bytes are shown as ‘\*\*’.

  -

    \[**d**\|**o**\|**u**\|**x**\] \[**C**\|**S**\|**I**\|**L**\|*n*\] Signed decimal (**d**), octal (**o**), unsigned decimal (**u**) or hexadecimal (**x**). Followed by an optional size specifier, which may be either **C** (*char*), **S** (*short*), **I** (*int*), **L** (*long*), or a byte count as a decimal integer.

  -

    **f** \[**F**\|**D**\|**L**\|*n*\] Floating-point number. Followed by an optional size specifier, which may be either **F** (*float*), **D** (*double*) or **L** (*long double*).

- **-v**

  Write all input data, instead of replacing lines of duplicate values with a ‘\*’.

Multiple options that specify output format may be used; the output will contain one line for each format.

If no output format is specified, **-t** **oS** is assumed.

## ENVIRONMENT

The LANG, LC\_ALL and LC\_CTYPE environment variables affect the execution of **od** as described in [environ(7)](/environ/7.md).

## EXIT STATUS

The **od** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Dump stdin and show the output using named characters and C-style escaped characters:

```
$ echo "FreeBSD: The power to serve" | od -a -c
0000000    F   r   e   e   B   S   D   :  sp   T   h   e  sp   p   o   w
           F   r   e   e   B   S   D   :       T   h   e       p   o   w
0000020    e   r  sp   t   o  sp   s   e   r   v   e  nl
           e   r       t   o       s   e   r   v   e  \n
0000034
```

Dump stdin skipping the first 13 bytes using named characters and dumping no more than 5 bytes:

```
$ echo "FreeBSD: The power to serve" | od -An -a -j 13 -N 5
           p   o   w   e   r
```

## COMPATIBILITY

The traditional **-s** option to extract string constants is not supported; consider using [strings(1)](/strings/1.md) instead.

## SEE ALSO

[hexdump(1)](/hexdump/1.md), [strings(1)](/strings/1.md)

## STANDARDS

The **od** utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

## HISTORY

An **od** command appeared in Version 1 AT&T UNIX.
