ls(1) on Solnix vs Linux and the BSDs

On Solnix, ls is the illumos ls at /usr/bin/ls. It also accepts a few GNU-style long options (--color, --si, --block-size, --time-style, --file-type). Several single-letter flags differ from Linux and the BSDs: -v gives a long listing, not a version sort, and there is no -T or -G.

What Solnix runs

/usr/bin/ls is the illumos ls. /usr/xpg4/bin/ls and /usr/xpg6/bin/ls are also shipped with the same synopsis. The one documented difference is that /usr/bin/ls shows mandatory locking as l in the group execute position, while the xpg4/xpg6 versions show L. /usr/ucb/ls is also shipped, but the bundle does not describe it.

Differences

Compared withTopicWhat differs
Linux-v meaningSolnix ls -v prints a long listing with the mode field. On Linux, -v sorts version numbers naturally. A Linux script using ls -v gets long-format output on Solnix.
Source: Solnix ls(1) DESCRIPTION (mode printed when -e, -E, -g, -l, -n, -o, -v, -V or -@ is in effect); Linux ls(1) -v
OpenBSD, NetBSD-o meaningSolnix ls -o produces a long listing. On OpenBSD and NetBSD, -o only adds file flags to a long listing that -l (or -g/-n on OpenBSD) has already selected.
Source: Solnix ls(1) DESCRIPTION (mode printed with -o); OpenBSD ls(1) -o; NetBSD ls(1) -o
NetBSD-w meaningSolnix ls -w takes a column width that overrides COLUMNS and terminfo. On NetBSD, -w takes no argument and prints non-printable characters raw.
Source: Solnix ls(1) DESCRIPTION (-w option overrides column width); NetBSD ls(1) -w
Linux, FreeBSD-G meaningSolnix /usr/bin/ls has no -G. On Linux, -G drops group names from a long listing. On FreeBSD, -G turns on colour. Solnix uses --color[=when] for colour.
Source: Solnix ls(1) SYNOPSIS; Linux ls(1) -G, --no-group; FreeBSD ls(1) -G
all four-T and full timestampsSolnix ls has no -T. On FreeBSD, OpenBSD and NetBSD, -T prints the full date and time in long listings. On Linux, -T sets the tab size. On Solnix, use --time-style style instead.
Source: Solnix ls(1) SYNOPSIS (--time-style); FreeBSD/OpenBSD/NetBSD ls(1) -T; Linux ls(1) -T, --tabsize
Linux, FreeBSDcreation timeSolnix shows creation time with -% crtime, or all four timestamps with -l -% all. FreeBSD uses -U for creation time. Linux uses --time=birth.
Source: Solnix ls(1) SYNOPSIS and DESCRIPTION (-% atime|crtime|ctime|mtime|all); FreeBSD ls(1) -U; Linux ls(1) --time
FreeBSD, OpenBSD, NetBSD-A for rootOn FreeBSD, OpenBSD and NetBSD, -A is switched on automatically for the superuser, so root sees dot files (FreeBSD: unless -I is given). The Solnix text in the bundle does not document this behaviour.
Source: FreeBSD ls(1) -A, -I; OpenBSD ls(1) -A; NetBSD ls(1) -A
OpenBSD, NetBSDcolourSolnix ls supports --color[=when] and reads LS_COLORS. The OpenBSD and NetBSD synopses have no colour option.
Source: Solnix ls(1) SYNOPSIS, Color Output; OpenBSD ls(1) SYNOPSIS; NetBSD ls(1) SYNOPSIS
OpenBSDfile type lettersThe Solnix long listing can show D (door) and P (event port) as the file type. OpenBSD's long format lists only -, b, c, d, l, p and s.
Source: Solnix ls(1) DESCRIPTION (first mode character); OpenBSD ls(1) The Long Format

Standards

  • POSIX: ls is a POSIX.1-2024 utility.
  • FreeBSD: -B, -D, -G, -I, -T, -U, -W, -Z, -b and -h are each marked as not defined in IEEE Std 1003.1-2008 (“POSIX.1”).

Writing portable scripts

  • Avoid -v, -o, -w, -G and -T in portable scripts: they mean different things on Solnix, Linux and the BSDs, or are missing.
  • Do not parse the ls -l mode field as fixed width. On Solnix it is eleven characters, and the last one is + (non-trivial ACL), @ (extended attributes, with -@) or a space.

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.