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.
The manual pages
- Solnix: split(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: split(1) coreutils-full-9.11
- FreeBSD: split(1) 15.1-RELEASE
- OpenBSD: split(1) 8.0
- NetBSD: split(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
split
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 with | Topic | What differs |
|---|---|---|
| FreeBSD, NetBSD | suffix exhaustion | Solnix 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, FreeBSD | numeric 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 count | Solnix 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 pattern | FreeBSD 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 suffixes | Solnix -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 form | Solnix 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 |
| Linux | GNU-only options | Linux 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 |
| OpenBSD | default prefix without name | On 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 |
| FreeBSD | overwriting existing files | FreeBSD 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 four | NAME_MAX check | Solnix 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 |
| Linux | environment variables | Solnix 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,-bwith a lowercase k or m suffix, and-a. Avoid-d,-n,-pand-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.