tar(1) on Solnix vs Linux and the BSDs
The published Solnix tar(1) page describes GNU tar (pkgs.solnix.gtar), but the tar on PATH on a default Solnix system is the illumos tar at /usr/bin/tar and /usr/sbin/tar. The illumos tar takes only key-letter arguments (c r t u x plus modifiers), with no GNU long options and no -A, -d or --delete.
The manual pages
What Solnix runs
A default Solnix system runs the illumos tar at /usr/bin/tar and /usr/sbin/tar, and no other illumos variants are shipped. The published page is GNU tar from pkgs.solnix.gtar, which is not the default; install pkgs.solnix.gtar to get it. The bundle does not say what command name the gtar package installs. The GNU page text matches the Linux GNU tar 1.35 page in the bundle, so GNU-specific advice below applies once gtar is installed.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | which tar you get | The Solnix gtar page and the Linux page are the same GNU tar text. The default Solnix /usr/bin/tar is a different program, the illumos tar, so a Linux script using GNU long options fails on a default Solnix system unless it calls gtar.Source: Solnix tar(1) header (default on PATH: illumos); Solnix tar(1) SYNOPSIS vs Linux tar(1) SYNOPSIS; illumos tar(1) SYNOPSIS |
| Linux | option syntax of the default tar | The illumos tar synopsis lists only key-string forms such as tar c[BDeEFhilnopPTvw@/[0-7]][bf] ... with function letters c, r, t, u, x. It shows no long options, no UNIX-style dash form, and no A, d, or delete function. Linux GNU tar supports all of these. Source: illumos tar(1) SYNOPSIS and Function Letters; Linux tar(1) SYNOPSIS, Operation mode |
| all four | modifier arguments follow key order | In the illumos key form, arguments for modifiers such as b, f and X are listed on the command line in the same order as their letters appear in the key string. The key contains no spaces. Source: illumos tar(1) DESCRIPTION; OpenBSD tar(1) DESCRIPTION (legacy form) |
| all four | extracting with wildcards | The illumos tar says filename wildcards cannot be used to extract files; it suggests feeding tar tf output into tar xvf. OpenBSD tar -t and -x accept glob patterns, and FreeBSD and NetBSD take shell-style globbing patterns for -t and -x.Source: illumos tar(1) Function Letters x; OpenBSD tar(1) -t, -x; FreeBSD tar(1) DESCRIPTION; NetBSD tar(1) DESCRIPTION |
| all four | path name length limits | Without the E modifier, illumos tar rejects names over 256 characters, or names that cannot be split into a prefix of at most 155 and a name of at most 100 characters. With E, names up to PATH_MAX are allowed. This limit is not described in the other pages. Source: illumos tar(1) OPERANDS file; Function Modifiers E |
| FreeBSD, OpenBSD, NetBSD | -u update semantics | With -u, GNU tar (Solnix gtar) and FreeBSD/NetBSD append only files newer than the archived copy, and the archive can end up with several members of the same name. OpenBSD -u is an alias for -r and appends without a date test. FreeBSD and NetBSD -u requires -f.Source: Solnix tar(1) -u; FreeBSD tar(1) -u; NetBSD tar(1) -u; OpenBSD tar(1) -u |
| FreeBSD, OpenBSD, NetBSD | modes the BSD tars lack | The BSD synopses have no -A (append archives), -d (diff) or --delete. GNU tar (Solnix gtar, Linux) has all three, and --delete does not work on compressed archives. The default illumos tar has none of them either.Source: Solnix tar(1) Operation mode -A, -d, --delete; FreeBSD/NetBSD tar(1) SYNOPSIS; OpenBSD tar(1) SYNOPSIS; illumos tar(1) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | long options and GNU extras | OpenBSD tar documents only single-letter flags. FreeBSD and NetBSD have some long options but a different set from GNU. GNU options such as --listed-incremental, --transform and --one-top-level, found in the Solnix gtar flag list, do not appear in the BSD flag lists.Source: Solnix tar(1) -g, --listed-incremental and option flags; OpenBSD tar(1) SYNOPSIS; FreeBSD tar(1) OPTIONS; NetBSD tar(1) OPTIONS |
| FreeBSD, NetBSD | -B and the block size | On FreeBSD and NetBSD, -B (--read-full-blocks) is ignored for compatibility, and -b gives a block size in 512-byte records, defaulting to 20. GNU tar lists -B as --read-full-records and -b as --blocking-factor.Source: FreeBSD tar(1) -B, -b; NetBSD tar(1) -B, -b; Solnix tar(1) option flags (--read-full-records, --blocking-factor) |
| OpenBSD | format selection and default archive | OpenBSD selects the archive format with -F format (default pax) and defaults the archive to /dev/rst0 (see TAPE). Its blocking factor maximum is 126, and values above 63 violate POSIX. The Solnix gtar text in the bundle shows --format; its default archive is not shown.Source: OpenBSD tar(1) -F, -f, -b; Solnix tar(1) option flags (--format) |
| FreeBSD, NetBSD | archive formats read | FreeBSD and NetBSD tar extract from tar, pax, cpio, zip, jar, ar, xar, rpm, 7-zip and ISO 9660 images (FreeBSD also rar), and support @archive to append another archive's entries. The GNU and illumos pages do not claim this. Source: FreeBSD tar(1) DESCRIPTION, @archive; NetBSD tar(1) DESCRIPTION, @archive |
| FreeBSD, NetBSD | ACLs and file flags by default | On FreeBSD and NetBSD, --acls and --fflags are the default when creating (c, r, u), and when extracting as root. Solnix gtar has --acls/--no-acls in its flag list, but its default is not shown in the bundle text.Source: FreeBSD tar(1) --acls, --fflags; NetBSD tar(1) --acls, --fflags; Solnix tar(1) option flags |
Standards
- POSIX: tar is not a POSIX.1-2024 utility.
- OpenBSD: The pax format is specified in IEEE Std 1003.1-2001 (“POSIX.1”); ustar and cpio are specified in IEEE Std 1003.2 (“POSIX.2”). A blocking factor above 63 violates the POSIX standard.
- Solnix: The trimmed Solnix and illumos tar text in the bundle states no standard for tar.
Writing portable scripts
- Stick to the key-letter form with only c, x, t and f (for example tar cf a.tar dir and tar xf a.tar); it is understood by every tar in the bundle.
- Do not rely on long options,
-z/-j compression flags, or wildcard extraction in scripts that must run on a default Solnix system, OpenBSD and GNU; call gtar explicitly if you need GNU features.
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.