pax(1) on Solnix vs Linux and the BSDs
On Solnix, pax is the illumos pax, which implements the POSIX.1-2024 utility. Its synopsis has far fewer options than the Linux, FreeBSD, OpenBSD and NetBSD pax: no -0, -E, -G, -T, -U or -B. Scripts written for the BSD or Linux pax need checking.
The manual pages
- Solnix: pax(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: pax(1) pax-20240817
- FreeBSD: pax(1) 15.1-RELEASE
- OpenBSD: pax(1) 8.0
- NetBSD: pax(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
pax
What Solnix runs
A default Solnix system runs the illumos pax; the bundle shows no other variant. The page is published by pkgs.solnix.illumos-world-man. The default output archive format is tar(1), and supported formats are detected automatically on input. The Solnix text in the bundle is trimmed after the -i option, so options after it are known only from the SYNOPSIS.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, OpenBSD, NetBSD | -0 (NUL-terminated names) | Solnix pax has no -0. On Linux, OpenBSD and NetBSD, -0 reads and writes NUL-terminated path names, for use with find -print0 and xargs -0. FreeBSD's synopsis has no -0 either. A pipeline like that cannot use pax on Solnix.Source: Solnix pax(1) SYNOPSIS; Linux pax(1) -0; OpenBSD pax(1) -0; NetBSD pax(1) SYNOPSIS; FreeBSD pax(1) SYNOPSIS |
| all four | select by user, group or time | The Linux, FreeBSD, OpenBSD and NetBSD synopses all take -U user, -G group and -T range to select members. The Solnix synopsis has none of them; only pattern and file operands, -c and -d select members.Source: Solnix pax(1) SYNOPSIS; Linux, FreeBSD, OpenBSD, NetBSD pax(1) SYNOPSIS (-U, -G, -T) |
| all four | -E limit and damaged archives | The four counterparts take -E limit and describe recovery from damaged archives, searching for the most members it can process. The Solnix synopsis has no -E, and the visible Solnix text does not describe such recovery.Source: Solnix pax(1) SYNOPSIS; Linux, FreeBSD, OpenBSD, NetBSD pax(1) DESCRIPTION (damaged archive, -E) |
| all four | -B volume size limit | The counterparts have -B bytes, which limits the bytes written to one archive volume (m, k and b suffixes on Linux and OpenBSD). Solnix has only -b blocksize and advises portable applications not to use a blocksize above 32256.Source: Solnix pax(1) -b; Linux pax(1) -B; OpenBSD pax(1) -B; FreeBSD and NetBSD pax(1) SYNOPSIS |
| all four | -z, -j and -J flags | The counterpart synopses list -z (and -j on Linux, OpenBSD and NetBSD; -J on Linux). The Solnix synopsis has none. The bundle excerpts do not show what these flags do, so check the full counterpart pages before relying on them.Source: Solnix pax(1) SYNOPSIS; Linux, FreeBSD, OpenBSD, NetBSD pax(1) SYNOPSIS |
| all four | -D, -O, -P, -Y, -Z | All four counterpart synopses list -D, -O, -P, -Y and -Z. The Solnix synopsis has none of them. The excerpts do not show their meaning, so scripts using them need testing on Solnix.Source: Solnix pax(1) SYNOPSIS; Linux, FreeBSD, OpenBSD, NetBSD pax(1) SYNOPSIS |
| all four | Solnix-only -@ and / flags | The Solnix synopsis lists -@ and / in read, write and copy modes. List mode also prints a file's extended attributes when it has any. No counterpart synopsis has -@ or /, and the visible counterpart text does not mention extended attributes.Source: Solnix pax(1) SYNOPSIS, DESCRIPTION list mode; Linux, FreeBSD, OpenBSD, NetBSD pax(1) SYNOPSIS |
| all four | -o in list mode | Solnix accepts -o options in list mode as well as in read and write modes. In the Linux, FreeBSD, OpenBSD and NetBSD synopses, -o appears only for read and write.Source: Solnix pax(1) SYNOPSIS (first form); Linux, FreeBSD, OpenBSD, NetBSD pax(1) SYNOPSIS |
| NetBSD | remote archives and extra options | NetBSD pax processes an archive named [[user@]host:]file through rmt(8), and has -N dbdir, -A, -M and -V. The Solnix page does not mention remote archives or these options.Source: NetBSD pax(1) DESCRIPTION, SYNOPSIS; Solnix pax(1) SYNOPSIS |
| all four | symbolic links on the command line | Solnix pax archives a symbolic link itself by default; -H or -L changes that. Solnix lists -H and -L on its list and read forms too. The counterpart synopses show -H and -L only for write and copy.Source: Solnix pax(1) -H, SYNOPSIS; Linux, FreeBSD, OpenBSD, NetBSD pax(1) SYNOPSIS |
Standards
- POSIX: pax is a POSIX.1-2024 utility.
Writing portable scripts
- For a portable script, use only the POSIX-style options in the Solnix synopsis (
-r,-w,-f,-x,-s,-p,-b,-c,-d,-i,-k,-l,-n,-t,-u,-v) and keep any-bblocksize at or below 32256. - Do not rely on
-0,-T,-U,-G,-E,-zor-j: they are in the Linux and BSD synopses but not the Solnix one.
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.