paste(1) on Solnix vs Linux and the BSDs
On Solnix, paste is the illumos paste at /usr/bin/paste. It has the same -d and -s options as the BSDs. The main difference for Linux users is that GNU paste's -z (NUL-terminated lines) is not documented. The main difference for BSD users is that unknown backslash escapes in the -d list are unspecified on Solnix, but mean the literal character on the BSDs.
The manual pages
- Solnix: paste(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: paste(1) coreutils-full-9.11
- FreeBSD: paste(1) 15.1-RELEASE
- OpenBSD: paste(1) 8.0
- NetBSD: paste(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
paste
What Solnix runs
A default Solnix system runs the illumos paste at /usr/bin/paste. No other variants are shipped.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | -z NUL-terminated lines | Linux paste -z treats NUL, not newline, as the line delimiter. The Solnix page documents only -d and -s, so it does not say that -z is supported.Source: Linux paste(1) -z, --zero-terminated; Solnix paste(1) SYNOPSIS and OPTIONS |
| Linux | long options and --help/--version | Linux paste accepts --delimiters, --serial, --help and --version. The Solnix page documents only the short options -d and -s, and no --help or --version.Source: Linux paste(1) -d, --delimiters; -s, --serial; --help; --version; Solnix paste(1) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | unknown backslash escapes in -d list | On Solnix, a backslash followed by any character other than n, t, \ or 0 gives unspecified results. FreeBSD, OpenBSD and NetBSD say such a character is equivalent to the character itself. Source: Solnix paste(1) -d ("If any other characters follow the backslash, the results are unspecified"); FreeBSD/OpenBSD/NetBSD paste(1) -d ("Any other character preceded by a backslash is equivalent to the character itself") |
| FreeBSD, OpenBSD, NetBSD | \0 followed by x, X or a digit | Solnix says that if \0 is immediately followed by x, X or an LC_CTYPE digit character, the results are unspecified. The BSD pages give no such caveat. Source: Solnix paste(1) -d (\0); FreeBSD/OpenBSD/NetBSD paste(1) -d (\0) |
| Linux | backslash escapes in -d list | Linux says only that backslash escapes are supported in the -d list. It does not list which ones. Solnix lists \n, \t, \\ and \0 and leaves all others unspecified.Source: Linux paste(1) -d, --delimiters; Solnix paste(1) -d |
| all four | stdin operand | Solnix, FreeBSD, OpenBSD and NetBSD say that `-` as a file operand reads standard input, one line at a time, circularly for each `-`. Linux says that with no FILE, or when FILE is `-`, paste reads standard input. Only Linux documents the no-operand case. Solnix and the BSDs list file as required in the synopsis. Source: Solnix paste(1) SYNOPSIS, OPERANDS; Linux paste(1) DESCRIPTION; FreeBSD/OpenBSD/NetBSD paste(1) DESCRIPTION |
| FreeBSD, OpenBSD, NetBSD | minimum number of files | The Solnix page states that implementations support pasting at least 12 file operands. The BSD pages state no such minimum. Source: Solnix paste(1) OPERANDS; FreeBSD/OpenBSD/NetBSD paste(1) DESCRIPTION |
| FreeBSD, OpenBSD, NetBSD | environment and large files | The Solnix page lists LANG, LC_ALL, LC_CTYPE, LC_MESSAGES and NLSPATH as affecting paste and refers to largefile(7) for files of 2 Gbyte or more. The FreeBSD, OpenBSD and NetBSD pages have no environment or large-file section. Source: Solnix paste(1) ENVIRONMENT VARIABLES, USAGE; FreeBSD/OpenBSD/NetBSD paste(1) |
Standards
- POSIX: paste is a POSIX.1-2024 utility.
- Solnix: Interface Stability: Standard. CSI: Enabled.
- FreeBSD: The paste utility is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.
- OpenBSD: The paste utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification.
- NetBSD: The paste utility is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.
Writing portable scripts
- Use only
-dand-s, and only the escapes \n, \t, \\ and \0 in the-dlist. Other backslash sequences are unspecified on Solnix and mean the literal character on the BSDs. - Do not rely on
-z. Only the Linux page documents it. Pass `-` explicitly to read standard input instead of relying on an empty operand list.
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.