split(1) on Solnix vs Linux and the BSDs

On Solnix, split is the illumos split at /usr/bin/split. It documents only -l (or -linecount), -b and -a. It has no -d, -n, -p or -c, and the page says output stops at suffix zz (676 files). Linux and the BSDs add various options and, on FreeBSD and NetBSD, extend the suffix automatically.

What Solnix runs

A default Solnix system runs the illumos split at /usr/bin/split. No other variants are shipped. The Solnix page is dated April 16, 1999.

Differences

Compared withTopicWhat differs
FreeBSD, NetBSDsuffix exhaustionSolnix names output files aa through zz, a maximum of 676 files. FreeBSD and NetBSD automatically lengthen the suffix when the output does not fit (FreeBSD: unless -d is given). The Solnix page documents no such extension.
Source: Solnix split(1) DESCRIPTION; FreeBSD split(1) DESCRIPTION; NetBSD split(1) DESCRIPTION
Linux, FreeBSDnumeric suffixes (-d)Solnix has no -d. Linux -d and FreeBSD -d use numeric suffixes instead of alphabetic ones. Linux also has -x for hex suffixes. A script using -d fails or is misread on Solnix, which documents only alphabetic suffixes.
Source: Solnix split(1) SYNOPSIS, OPTIONS; Linux split(1) -d, -x; FreeBSD split(1) -d
Linux, FreeBSD, NetBSD-n chunk countSolnix has no -n. Linux -n takes CHUNKS (N, K/N, l/N, r/N and so on). FreeBSD and NetBSD -n takes a chunk_count and splits the file into that many pieces. OpenBSD has no -n either.
Source: Solnix split(1) SYNOPSIS; Linux split(1) -n, CHUNKS; FreeBSD split(1) -n; NetBSD split(1) -n; OpenBSD split(1) SYNOPSIS
FreeBSD, OpenBSD-p patternFreeBSD and OpenBSD -p splits whenever an input line matches an extended regular expression. Solnix, Linux and NetBSD do not document -p. On Solnix, csplit(1) is the page's SEE ALSO pointer.
Source: FreeBSD split(1) -p; OpenBSD split(1) -p; Solnix split(1) SEE ALSO; Linux split(1) OPTIONS; NetBSD split(1) SYNOPSIS
all four-b size suffixesSolnix -b accepts n, nk and nm only (1024 and 1048576 multipliers, lowercase shown). FreeBSD adds G/g. Linux accepts K, M, G, T and more, plus KB-style powers of 1000. OpenBSD and NetBSD accept k and m.
Source: Solnix split(1) -b n, -b nk, -b nm; Linux split(1) SIZE; FreeBSD split(1) -b; OpenBSD split(1) -b; NetBSD split(1) -b
all four-linecount formSolnix accepts the line count either as -linecount or as -l linecount. The Linux, FreeBSD, OpenBSD and NetBSD pages document only -l (Linux also --lines). Use -l in portable scripts.
Source: Solnix split(1) SYNOPSIS, OPTIONS; Linux split(1) -l; FreeBSD split(1) -l; OpenBSD split(1) -l; NetBSD split(1) -l
LinuxGNU-only optionsLinux split has -C (line-bytes), -e, -t (record separator), -u, --filter, --additional-suffix and --verbose. The Solnix page documents none of these, and has no long options.
Source: Linux split(1) OPTIONS; Solnix split(1) SYNOPSIS
OpenBSDdefault prefix without nameOn OpenBSD, with no name operand the output files use the prefixes x, y and z. Solnix always uses x (xaa, xab and so on) when no name is given. The OpenBSD page calls y and z an extension to POSIX.
Source: OpenBSD split(1) DESCRIPTION, STANDARDS; Solnix split(1) DESCRIPTION, OPERANDS
FreeBSDoverwriting existing filesFreeBSD split overwrites existing output files by default; -c creates files with names that do not already exist. The Solnix page documents neither -c nor overwrite behaviour.
Source: FreeBSD split(1) -c, DESCRIPTION; Solnix split(1) OPTIONS
all fourNAME_MAX checkSolnix exits with a diagnostic and creates no files if name plus the suffix length would exceed NAME_MAX bytes. The other pages do not document this check.
Source: Solnix split(1) -a, OPERANDS name; Linux/FreeBSD/OpenBSD/NetBSD split(1) DESCRIPTION
Linuxenvironment variablesSolnix lists LANG, LC_ALL, LC_CTYPE, LC_MESSAGES and NLSPATH. The Linux page says -n (except -nr) buffers in $TMPDIR, default /tmp, when input size is unknown. The Solnix page does not mention TMPDIR.
Source: Solnix split(1) ENVIRONMENT VARIABLES; Linux split(1) CHUNKS note

Standards

  • POSIX: split is a POSIX.1-2024 utility.
  • Solnix: ATTRIBUTES: Interface Stability is Committed; Standard is given as "See standards(7)".
  • FreeBSD: The split utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”).
  • OpenBSD: The split utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flag -p, and the y and z prefixes when no name is given, are an extension.
  • NetBSD: The split utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

Writing portable scripts

  • Stick to -l, -b with a lowercase k or m suffix, and -a. Avoid -d, -n, -p and -c, which are missing or mean different things on some systems.
  • Always give an explicit prefix operand, and keep the number of pieces under 676 with the default suffix length of 2.

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.