strings(1) on Solnix vs Linux and the BSDs
A default Solnix system runs the illumos strings at /usr/bin/strings. The published page (pkgs.solnix.binutils) documents GNU strings, which has the same options as Linux. The key difference is that illumos -o means -t d, while GNU, FreeBSD and OpenBSD -o means -t o.
The manual pages
- Solnix: strings(1) from
pkgs.solnix.binutils - Linux: strings(1) binutils-2.46
- FreeBSD: strings(1) 15.1-RELEASE
- OpenBSD: strings(1) 8.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
strings
What Solnix runs
The published strings(1) page comes from pkgs.solnix.binutils and describes GNU strings. The command on PATH is the illumos /usr/bin/strings, whose page is different. No other illumos variants are shipped. The illumos strings has only -a, -, -n, -number, -N, -o and -t. It has no -e, -f, -d, -U, -T, -w, -s, -v/-V, --help or long options, and no @file. To get the GNU options, install pkgs.solnix.binutils. The bundle does not say what name or path the GNU binary gets on Solnix.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | -o meaning | illumos strings -o is equivalent to -t d (decimal offset). GNU strings on Linux and OpenBSD, and FreeBSD strings, make -o equivalent to -t o (octal). The same -o gives different offsets on the illumos command on PATH. Use -t explicitly.Source: Solnix default illumos strings(1) -o; Linux strings(1) -o; FreeBSD strings(1) -o; OpenBSD strings(1) -o |
| Linux, FreeBSD, OpenBSD | -e encoding | The illumos strings on PATH has no -e. Linux, FreeBSD and OpenBSD take -e encoding (s, S, b, l, B, L) to find 16-bit and 32-bit strings. The illumos page documents no way to search wide-character strings.Source: Solnix default illumos strings(1) SYNOPSIS and OPTIONS; Linux strings(1) -e; FreeBSD strings(1) -e; OpenBSD strings(1) -e |
| Linux, FreeBSD, OpenBSD | -f file name prefix | The illumos strings on PATH has no -f / --print-file-name. Linux, FreeBSD and OpenBSD can print the file name before each string.Source: Solnix default illumos strings(1) OPTIONS; Linux strings(1) -f; FreeBSD strings(1) -f; OpenBSD strings(1) -f |
| Linux, FreeBSD, OpenBSD | long options | The illumos strings page documents no long options. Linux, FreeBSD and OpenBSD accept --all, --bytes, --radix, --encoding and --print-file-name. The long forms are not in the illumos synopsis.Source: Solnix default illumos strings(1) SYNOPSIS; Linux strings(1) SYNOPSIS; FreeBSD strings(1) SYNOPSIS; OpenBSD strings(1) SYNOPSIS |
| Linux, FreeBSD, OpenBSD | default scan scope | illumos strings by default looks at sections of type SHT_PROGBITS with the SHF_ALLOC flag. FreeBSD and OpenBSD scan initialized and loaded sections of object files. GNU on Linux depends on how it was configured, either the whole file or loadable data sections. Source: Solnix default illumos strings(1) DESCRIPTION; FreeBSD strings(1) DESCRIPTION; OpenBSD strings(1) DESCRIPTION; Linux strings(1) DESCRIPTION |
| Linux, FreeBSD, OpenBSD | -N section selection | illumos strings -N name searches only the named ELF section, and can be repeated. It is ignored if -a or - is given. None of the Linux, FreeBSD or OpenBSD pages document -N. Linux documents -d for data sections instead.Source: Solnix default illumos strings(1) -N; Linux strings(1) -d; FreeBSD strings(1) OPTIONS; OpenBSD strings(1) OPTIONS |
| Linux, FreeBSD, OpenBSD | stdin and multiple files | The illumos synopsis takes an optional [file]... and reads standard input if none is given. The Linux and OpenBSD synopses show file... as required and do not describe stdin. The Linux page says it always scans everything when reading stdin. FreeBSD says stdin is read when no file is named. Source: Solnix default illumos strings(1) OPERANDS; FreeBSD strings(1) DESCRIPTION; Linux strings(1) DESCRIPTION; OpenBSD strings(1) SYNOPSIS |
| Linux, FreeBSD, OpenBSD | version and help flags | illumos strings documents no -v, -V, -h or --help. On Linux and OpenBSD -v prints the version. On FreeBSD -v prints a version and -h prints help. In scripts, the same -v is not a version probe on the illumos command.Source: Solnix default illumos strings(1) OPTIONS; Linux strings(1) -v, --help; FreeBSD strings(1) -h, -v; OpenBSD strings(1) -v, --help |
| Linux, OpenBSD | @file option files | The GNU pages (Linux, OpenBSD) read options from a file with @file. The illumos page on PATH does not document this. Source: Linux strings(1) @file; OpenBSD strings(1) @file; Solnix default illumos strings(1) OPTIONS |
| Linux | published GNU page is the same program as Linux | The published Solnix page (pkgs.solnix.binutils) and the Linux page have the same synopsis and option text, including -d, -U, -T, -w and -s. After installing the package, behaviour matches GNU strings on Linux.Source: Solnix strings(1) [binutils] SYNOPSIS and OPTIONS; Linux strings(1) SYNOPSIS and OPTIONS |
| FreeBSD, OpenBSD | GNU-only options | The GNU page documents -d, -U, -T, -w and -s. FreeBSD documents none of these. OpenBSD documents only the long form --target. These need the pkgs.solnix.binutils build, not the illumos command.Source: Solnix strings(1) [binutils] OPTIONS; FreeBSD strings(1) SYNOPSIS; OpenBSD strings(1) SYNOPSIS |
Standards
- POSIX: strings is a POSIX.1-2024 utility.
- Solnix: illumos strings: the utility, including all options except
-N, is specified by standards (see standards(7)). The-Noption is not currently specified by any standard. CSI is Enabled. - Solnix: The published GNU binutils page has no STANDARDS section.
- Linux: The Linux page has no STANDARDS section.
- FreeBSD: The FreeBSD page has no STANDARDS section.
- OpenBSD: The OpenBSD page has no STANDARDS section.
Writing portable scripts
- Write offsets with
-td,-to or-tx, never-o: it is octal on GNU, FreeBSD and OpenBSD but decimal on illumos. - Stick to
-a,-nnumber and-tradix, which all four implementations document. Avoid-e,-f,-Nand the long options in portable scripts.
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.