gunzip(1) on Solnix vs Linux and the BSDs
gunzip is not in the base Solnix system; install pkgs.solnix.gzip to get it. The Solnix page text in the bundle is empty, so Solnix behaviour cannot be compared flag by flag. Between the counterparts, the biggest differences are which input formats gunzip accepts and how -f, -a and -l behave.
The manual pages
What Solnix runs
Not installed by default: add pkgs.solnix.gzip. The header names the implementation only as "gzip", and no other variants are shipped. The Solnix page body in the bundle is empty and its option list is blank. The manual text provided does not say which flags or formats Solnix's gunzip supports, so the differences below are among Linux (gzip-1.14), FreeBSD 15.1 and NetBSD 11.0.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | availability on Solnix | gunzip is not in the default Solnix base system. It comes from the package pkgs.solnix.gzip. Scripts must not assume gunzip or zcat is on PATH on a fresh Solnix install. Source: Solnix bundle header ("none: install pkgs.solnix.gzip") |
| Linux, FreeBSD, NetBSD | Solnix page content | The Solnix gunzip(1) page is empty in the bundle. The manual does not say whether Solnix's gzip matches the Linux gzip-1.14 options or the BSD ones, so check gunzip --help after installing.Source: Solnix gunzip(1) section (empty); Solnix option flags line (blank) |
| FreeBSD, NetBSD | formats gunzip can read | Linux gunzip reads files made by gzip, zip (single member only), compress, compress -H and pack. FreeBSD and NetBSD list compress, bzip2, lzip and xz instead, and FreeBSD adds zstd. Neither BSD page mentions pack or zip.Source: Linux gunzip(1) DESCRIPTION; FreeBSD gunzip(1) DESCRIPTION; NetBSD gunzip(1) DESCRIPTION |
| NetBSD | zstd input | FreeBSD gunzip can decompress zstd(1) files. The NetBSD page lists compress, bzip2, lzip and xz only, with no zstd. Source: FreeBSD gunzip(1) DESCRIPTION; NetBSD gunzip(1) DESCRIPTION |
| FreeBSD, NetBSD | -a (ascii) | On NetBSD, -a does nothing and exists for GNU compatibility. On Linux it converts line endings, but only on some non-Unix systems. The FreeBSD page does not list -a in the synopsis or options.Source: NetBSD gunzip(1) -a; Linux gunzip(1) -a, --ascii; FreeBSD gunzip(1) SYNOPSIS and OPTIONS |
| Linux, NetBSD | -f and symbolic links | FreeBSD -f also allows symbolic links to regular files. The NetBSD -f text lists multiple links, overwriting, terminals and pass-through, but not symlinks. The Linux -f text does not mention symlinks, while its DESCRIPTION says gzip ignores symbolic links.Source: FreeBSD gunzip(1) -f; NetBSD gunzip(1) -f; Linux gunzip(1) -f and DESCRIPTION |
| Linux | -f prompting | Linux gunzip prompts before overwriting an existing file unless -f is given and it is not running in the background. The FreeBSD and NetBSD pages say -f allows overwriting, and do not describe a prompt.Source: Linux gunzip(1) -f; FreeBSD gunzip(1) -f; NetBSD gunzip(1) -f |
| FreeBSD, NetBSD | -l with -v and the 4 GB limit | On FreeBSD and NetBSD, -l -v also shows compression method, CRC, date and time. FreeBSD's BUGS section says the recorded size is a 32-bit field, so -l cannot report files over 4GB. The Linux page text provided is trimmed here.Source: FreeBSD gunzip(1) -l, BUGS; NetBSD gunzip(1) -l; Linux gunzip(1) -l (trimmed) |
| FreeBSD, NetBSD | GZIP variable and exit status | FreeBSD and NetBSD parse GZIP as extra options placed before the command-line options. They exit 0 on success, 1 on error and 2 on a warning. The Linux page text provided does not show either, because it is trimmed. Source: FreeBSD gunzip(1) ENVIRONMENT, EXIT STATUS; NetBSD gunzip(1) ENVIRONMENT, EXIT STATUS |
| FreeBSD, NetBSD | recognised suffixes | Linux gunzip accepts .gz, -gz, .z, -z and _z (case ignored), and treats .tgz and .taz as shorthand for .tar.gz and .tar.Z. The BSD pages name only the default .gz, changed with -S, and do not mention .tgz or .taz.Source: Linux gunzip(1) DESCRIPTION; FreeBSD gunzip(1) -S; NetBSD gunzip(1) -S |
| Linux | zcat and files without .gz | Linux says zcat is identical to gunzip -c and decompresses files with the right magic number whether or not they end in .gz. The BSD pages say only that invocation as zcat or gzcat enables -c and -d.Source: Linux gunzip(1) DESCRIPTION (zcat); FreeBSD gunzip(1) DESCRIPTION; NetBSD gunzip(1) DESCRIPTION |
Standards
- POSIX: gunzip is not a POSIX.1-2024 utility.
- Linux: The Linux page text provided names no standard.
- FreeBSD: The FreeBSD page names no standard. HISTORY says the implementation was ported from NetBSD gzip version 20181111 and first appeared in FreeBSD 7.0.
- NetBSD: The NetBSD page names no standard. It documents NetBSD gzip version 20260103.
Writing portable scripts
- Check that gunzip exists before using it. It is not in the Solnix base system, so install pkgs.solnix.gzip first.
- Stick to gunzip
-c,-f,-k,-tand-S. All three counterparts document them, but run gunzip--helpon Solnix to confirm. - Do not rely on gunzip reading zip, pack or zstd input. Linux and the BSDs differ on those formats.
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.