od(1) on Solnix vs Linux and the BSDs

On Solnix, od is the illumos od at /usr/bin/od, and /usr/xpg4/bin/od is also shipped. It has none of the GNU long options and none of the BSD letter shortcuts (-a, -h, -i, -l, -e, -H, -I, -L, -B). Its default output is 2-byte octal words, and -S means signed decimal long words, not strings.

What Solnix runs

A default Solnix system runs the illumos od at /usr/bin/od. /usr/xpg4/bin/od is also shipped with a similar synopsis. The visible difference is -c: /usr/bin/od -c shows single-byte characters, while xpg4 -c and -C read multibyte characters per LC_CTYPE and print ** for continuation bytes. /usr/bin/od lists -C in its synopsis, but the bundle text does not describe it. Part of the Solnix page (-t type details, -v, -x, -X) is trimmed in the bundle.

Differences

Compared withTopicWhat differs
Linuxdefault outputWith no type option, Solnix od acts as if -t o2 was given (octal 2-byte words). Linux od writes octal bytes by default. Dumps of the same file differ in grouping unless you pass -t explicitly.
Source: Solnix od(1) DESCRIPTION (default as if -t o2); Linux od(1) DESCRIPTION (octal bytes by default)
FreeBSD, OpenBSD, NetBSDdefault outputFreeBSD assumes -t oS, which is 2-byte octal, so it matches Solnix. The OpenBSD and NetBSD pages contradict themselves: -b is called the default, but the closing paragraph says the default is -o. Do not rely on the default.
Source: FreeBSD od(1) (-t oS assumed); OpenBSD od(1) -b and closing paragraph; NetBSD od(1) -b and closing paragraph; Solnix od(1) DESCRIPTION
Linux, FreeBSD-S meaningSolnix od -S reads long words as signed decimal (-t d4). Linux od -S BYTES shows only NUL-terminated strings. The FreeBSD page says the traditional -s string extraction is not supported and points to strings(1).
Source: Solnix od(1) /usr/xpg4/bin/od -S; Linux od(1) -S, --strings; FreeBSD od(1) COMPATIBILITY
OpenBSD-D meaningSolnix and FreeBSD od -D print unsigned decimal 4-byte values (-t u4). OpenBSD od -D prints 4-byte octal. Linux has no -D, and the NetBSD page lists -D in its synopsis without describing it.
Source: Solnix od(1) /usr/xpg4/bin/od -D; FreeBSD od(1) -D; OpenBSD od(1) -D; NetBSD od(1) SYNOPSIS and OPTIONS
all fourmissing single-letter shortcutsThe Solnix synopsis has no -a, -h, -H, -i, -I, -l, -L, -e or -B. Linux uses -a, -i, -l; the BSDs use -a, -h, -H, -i, -I, -L, -l, -e, -B. On Solnix use -t, for example -t x2.
Source: Solnix od(1) SYNOPSIS; Linux od(1) -a -i -l; FreeBSD od(1) OPTIONS; OpenBSD od(1) OPTIONS; NetBSD od(1) OPTIONS
Linuxlong options and extra GNU featuresSolnix od has no long options, no -w line width, no --endian, no --traditional, and no z type suffix. Linux od has all of these.
Source: Solnix od(1) SYNOPSIS; Linux od(1) -w, --endian, --traditional, TYPE z suffix
OpenBSD, NetBSD-t fL sizeOn OpenBSD and NetBSD, f followed by L means eight-byte floats and f defaults to eight bytes. On FreeBSD and Linux, L means long double. The Solnix -t text in the bundle is trimmed, so check it before using fL.
Source: OpenBSD od(1) -t f; NetBSD od(1) -t f; FreeBSD od(1) -t f[F|D|L|n]; Linux od(1) TYPE f
all four-j and -N argument syntaxSolnix -j and -N take decimal, 0x hex or leading-0 octal, and -j takes suffixes b, k, m (512, 1024, 1048576). Linux lists b, KB, K, MB, M and so on, with no lowercase k or m. FreeBSD documents b, k, m only.
Source: Solnix od(1) -j, -N; Linux od(1) BYTES; FreeBSD od(1) -j
all fourshort input and exit statusSolnix -j writes a diagnostic and exits non-zero if the combined input is shorter than skip. Short input under -N is not an error. The other pages do not document either case, and the BSD pages say only 0 on success, >0 on error.
Source: Solnix od(1) -j, -N; FreeBSD od(1) EXIT STATUS; OpenBSD od(1) EXIT STATUS; NetBSD od(1) EXIT STATUS
all fouroffset operandSolnix accepts an [offset_string] operand but not together with -A, -j, -N or -t. Linux treats OFFSET as -j, and a LABEL operand needs --traditional. FreeBSD and NetBSD show [+]offset[.][Bb] in the synopsis. OpenBSD documents it only under -j.
Source: Solnix od(1) DESCRIPTION; Linux od(1) SYNOPSIS and DESCRIPTION; FreeBSD od(1) SYNOPSIS; NetBSD od(1) SYNOPSIS; OpenBSD od(1) -j
FreeBSD-c escapes and localeSolnix /usr/bin/od -c prints only \0 \b \f \n \r \t as escapes. FreeBSD -c also uses \a and \v, and shows ** for continuation bytes of multibyte characters. Solnix shows ** only in the xpg4 version.
Source: Solnix od(1) /usr/bin/od -c, /usr/xpg4/bin/od -c; FreeBSD od(1) -t c

Standards

  • POSIX: od is a POSIX.1-2024 utility.
  • FreeBSD: The od utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

Writing portable scripts

  • Select formats with -t and explicit sizes (for example -t x1, -t o2, -t u4), plus -A, -j, -N and -v. Avoid -a, -D, -S, -s, -i, -l, -h and -e, which differ or are missing.
  • Do not rely on the default output; pass -t or -b explicitly, since Solnix, Linux and the BSD pages give different or conflicting defaults.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.