df(1b) on Solnix vs Linux and the BSDs
This page documents /usr/ucb/df, the BSD-compatibility df on Solnix, which is not the df that a plain `df` runs. It documents only -a, -i and -t type, with no size-unit, portability or local-only options. Scripts written for Linux or BSD df flags such as -h, -k, -P or -l will not match this page.
The manual pages
- Solnix: df(1b) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: df(1) coreutils-full-9.11
- FreeBSD: df(1) 15.1-RELEASE
- OpenBSD: df(1) 8.0
- NetBSD: df(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
df
What Solnix runs
The page df(1b) describes /usr/ucb/df. A default Solnix system puts the illumos /usr/bin/df and /usr/sbin/df on PATH, and also ships /usr/xpg4/bin/df. The bundle contains no text for those three, so this page cannot say how their options differ from /usr/ucb/df. Run /usr/ucb/df explicitly if you need the behaviour described here.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | which df this page covers | The Solnix page covers /usr/ucb/df only. The df found on PATH by default is /usr/bin/df, whose options this bundle does not document. Do not assume a plain `df` behaves as described here.Source: Solnix df(1b) SYNOPSIS (/usr/ucb/df); bundle header (default on PATH is /usr/bin/df, /usr/sbin/df) |
| all four | size units and human-readable output | Solnix /usr/ucb/df documents no option to choose units: no -k, -h, -H, -m, -g or -B. It does not state the default block size, nor any BLOCKSIZE variable. Linux defaults to 1K blocks; FreeBSD, OpenBSD and NetBSD to 512-byte blocks.Source: Solnix df(1b) OPTIONS; Linux df(1) DESCRIPTION, -B, -h, -k; FreeBSD df(1) -b, -g, -h, -k, -m, ENVIRONMENT; OpenBSD df(1) -h, -k; NetBSD df(1) -k, -m, -g |
| all four | portable output (-P) | Solnix /usr/ucb/df has no -P. Linux -P selects the POSIX output format. OpenBSD -P is a stricter parseable format that ignores BLOCKSIZE. NetBSD -P documents an exact header and line format. FreeBSD -P means 512-byte blocks, the same as -b.Source: Solnix df(1b) OPTIONS; Linux df(1) -P; OpenBSD df(1) -P; NetBSD df(1) -P; FreeBSD df(1) -P, BUGS |
| FreeBSD, OpenBSD, NetBSD | -t type syntax | Solnix -t type takes a single type, for example nfs or ufs. FreeBSD, OpenBSD and NetBSD accept a comma-separated list, and a 'no' prefix excludes types. The Solnix page documents neither.Source: Solnix df(1b) -t; FreeBSD df(1) -t; OpenBSD df(1) -t; NetBSD df(1) -t |
| Linux | excluding file system types | Solnix /usr/ucb/df has no exclusion option. Linux -x, --exclude-type=TYPE lists file systems not of that type, and -t, --type=TYPE limits the listing to one type.Source: Solnix df(1b) OPTIONS; Linux df(1) -t, -x |
| Linux, FreeBSD, NetBSD | -a meaning | Solnix -a adds file systems with zero total blocks, such as the auto-mounter. Linux -a adds pseudo, duplicate and inaccessible file systems. FreeBSD and NetBSD -a adds mount points flagged MNT_IGNORE. OpenBSD df has no -a.Source: Solnix df(1b) -a; Linux df(1) -a; FreeBSD df(1) -a; NetBSD df(1) -a; OpenBSD df(1) SYNOPSIS |
| all four | -i inode report | Solnix -i reports used and free inodes and prints '*' where no information is available. Linux -i lists inode information instead of block usage. FreeBSD prints '-' in place of the usage percentage when a file system has no inodes. The Solnix page does not say whether block columns remain.Source: Solnix df(1b) -i; Linux df(1) -i; FreeBSD df(1) -i; OpenBSD df(1) -i; NetBSD df(1) -i |
| all four | local-only listing (-l) | Solnix /usr/ucb/df documents no -l to limit output to local file systems. Linux, FreeBSD, OpenBSD and NetBSD all provide -l.Source: Solnix df(1b) OPTIONS; Linux df(1) -l; FreeBSD df(1) -l; OpenBSD df(1) -l; NetBSD df(1) -l |
| Linux, FreeBSD | file system type column (-T) | Solnix /usr/ucb/df has no -T to print the file system type. Linux -T, --print-type and FreeBSD -T add the type column. NetBSD and OpenBSD df have no -T.Source: Solnix df(1b) OPTIONS; Linux df(1) -T; FreeBSD df(1) -T; OpenBSD df(1) SYNOPSIS; NetBSD df(1) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | stale statistics (-n) | FreeBSD, OpenBSD and NetBSD -n prints previously obtained statistics without querying file systems, to avoid delays on hung file systems. Solnix /usr/ucb/df documents no such option.Source: Solnix df(1b) OPTIONS; FreeBSD df(1) -n; OpenBSD df(1) -n; NetBSD df(1) -n |
| all four | exit status | The Solnix page has no EXIT STATUS section. OpenBSD documents exit 0 on success and >0 on error. The Linux, FreeBSD and NetBSD pages in the bundle do not give a status either. Source: Solnix df(1b) (no EXIT STATUS); OpenBSD df(1) EXIT STATUS |
Standards
- POSIX: df is a POSIX.1-2024 utility.
- Solnix: The df(1b) page has no STANDARDS section, so it states no conformance.
- FreeBSD: With the exception of most options, df conforms to IEEE Std 1003.1-2004 (“POSIX.1”), which defines only the
-k,-Pand-toptions. - OpenBSD: df is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flags [
-hiln] and BLOCKSIZE are extensions. The traditional BSD-tbehaviour differs from the X/Open System Interfaces option specification.
Writing portable scripts
- Use only
-k,-Pand-tin portable scripts, since FreeBSD says POSIX defines only those. Even then,-tdiffers: Solnix/usr/ucb/dftakes one type, while the BSDs take a list. - Do not rely on `df` meaning
/usr/ucb/dfon Solnix. Call/usr/ucb/dfexplicitly if you need this page's behaviour, or test the option you need on the df on PATH.
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.