df(8) on Solnix vs Linux and the BSDs

On Solnix, df is the illumos df, documented in section 8 and installed at both /usr/bin/df and /usr/sbin/df. Its letters differ sharply from Linux and the BSDs: -t prints totals instead of selecting a file system type, -h scales by 1024 as on Linux, and there is no -i, -H, -T or -B.

What Solnix runs

A default Solnix system runs the illumos df at /usr/bin/df and /usr/sbin/df. /usr/xpg4/bin/df and /usr/ucb/df are also shipped, but the bundle does not describe how they differ. Unlike the other systems, the Solnix df can also report on unmounted file systems, using -F.

Differences

Compared withTopicWhat differs
all four-t meaningSolnix df -t prints full listings with totals. On Linux, FreeBSD, OpenBSD and NetBSD, -t type limits the listing to file systems of that type. Scripts that use df -t ext4 or df -t nonfs break on Solnix.
Source: Solnix df(8) -t; Linux df(1) -t, --type; FreeBSD df(1) -t; OpenBSD df(1) -t; NetBSD df(1) -t
all fourinode reporting (-i vs -e)Solnix has no -i. Its -e prints only the number of files free. Linux, FreeBSD, OpenBSD and NetBSD use -i to add or list inode statistics.
Source: Solnix df(8) -e and SYNOPSIS; Linux df(1) -i; FreeBSD df(1) -i; OpenBSD df(1) -i; NetBSD df(1) -i
all four-P meaningSolnix -P is documented as the same as -h but in 512-byte units. Linux -P selects the POSIX output format. OpenBSD -P is a stricter format for portable scripts, and NetBSD -P has a fixed header and format. FreeBSD -P means 512-byte blocks.
Source: Solnix df(8) -P; Linux df(1) -P; FreeBSD df(1) -P; OpenBSD df(1) -P; NetBSD df(1) -P
FreeBSD, OpenBSD, NetBSD-n meaningSolnix -n prints only the FSType name (a list of mounted types if no operand is given). On FreeBSD, OpenBSD and NetBSD, -n prints previously obtained, possibly stale statistics instead of requesting new ones.
Source: Solnix df(8) -n; FreeBSD df(1) -n; OpenBSD df(1) -n; NetBSD df(1) -n
FreeBSD, NetBSD-g meaningSolnix -g prints the entire statvfs(2) structure. FreeBSD -g reports in 1 GiB blocks and NetBSD -g in gigabytes. NetBSD's own -G is described as modelled after the Solaris -g option.
Source: Solnix df(8) -g; FreeBSD df(1) -g; NetBSD df(1) -g, -G
FreeBSD, NetBSD-b meaningSolnix -b prints the total number of kilobytes free. FreeBSD -b and NetBSD -b select 512-byte blocks and override BLOCKSIZE.
Source: Solnix df(8) -b; FreeBSD df(1) -b; NetBSD df(1) -b
Linux, FreeBSD, NetBSD-h and -HSolnix -h scales by 1024 (e.g. 14K, 234M, 2.7G) and is a variant of -k that overrides -b, -e, -g, -k, -n, -t and -V. It cannot be combined with -o. Solnix has no -H for powers of 1000, which Linux, FreeBSD and NetBSD provide.
Source: Solnix df(8) -h; Linux df(1) -h, -H; FreeBSD df(1) -H; NetBSD df(1) -H
Linux, FreeBSDfilesystem type column and filteringSolnix has no -T to show the file system type and no -x to exclude types. Linux has -T and -x. FreeBSD has -T. On Solnix, -F FSType selects the type to operate on, and -n lists type names.
Source: Solnix df(8) -F, -n; Linux df(1) -T, -x; FreeBSD df(1) -T
Linuxblock size selectionLinux has -B SIZE and reads DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE. Solnix has no -B and its page lists none of these variables. It offers -k, -m and -v for fixed units.
Source: Linux df(1) -B, OPTIONS closing paragraph; Solnix df(8) -k, -m, -v, ENVIRONMENT VARIABLES
FreeBSD, OpenBSD, NetBSDBLOCKSIZE environment variableFreeBSD, OpenBSD and NetBSD read BLOCKSIZE to choose the unit for block counts. The Solnix page lists only LANG, LC_ALL, LC_CTYPE, LC_MESSAGES and NLSPATH, and does not document BLOCKSIZE.
Source: FreeBSD df(1) ENVIRONMENT; OpenBSD df(1) ENVIRONMENT; NetBSD df(1) ENVIRONMENT; Solnix df(8) ENVIRONMENT VARIABLES
all fourunmounted file systems and zonesSolnix df can report on unmounted file systems when given -F, and -V prints the file-system-specific command lines without running them. -Z shows mounts in all visible zones. Linux df cannot show unmounted file systems, and the BSD pages describe mounted file systems only.
Source: Solnix df(8) DESCRIPTION, -F, -V, -Z; Linux df(1) DESCRIPTION; FreeBSD df(1) DESCRIPTION; OpenBSD df(1) DESCRIPTION
FreeBSD, NetBSDgrand totalFreeBSD and NetBSD use -c for a grand total, and Linux uses --total. Solnix has no -c. Its -t prints full listings with totals.
Source: Solnix df(8) -t; FreeBSD df(1) -c; NetBSD df(1) -c; Linux df(1) --total

Standards

  • POSIX: df is a POSIX.1-2024 utility.
  • Solnix: ATTRIBUTES: Interface Stability is Standard.
  • FreeBSD: With the exception of most options, df conforms to IEEE Std 1003.1-2004 (“POSIX.1”), which defines only the -k, -P and -t options.
  • OpenBSD: df is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flags [-hiln] and BLOCKSIZE are extensions. OpenBSD provides the traditional BSD -t behaviour, which differs from the X/Open System Interfaces option specification.

Writing portable scripts

  • Avoid -t, -P, -h, -i and -n in scripts meant to run on Solnix and the other systems. They mean different things or are missing. df -k with a file operand is the common ground.
  • Do not rely on BLOCKSIZE to set units. The Solnix page does not document it. Pass an explicit unit flag such as -k instead.

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.