apropos(1) on Solnix vs Linux and the BSDs

On Solnix, apropos is the illumos apropos at /usr/bin/apropos, which is just man -k. It matches keywords as substrings of the NAME line only and fails if the whatis database is missing. It takes only -M and -s, with no regex, -a/-o expressions or full-text search.

What Solnix runs

A default Solnix system runs the illumos apropos at /usr/bin/apropos. No other variants are shipped. whatis is documented on the same page and does whole-word matching. The whatis database is the one created by man -w, and apropos and whatis fail if it is absent.

Differences

Compared withTopicWhat differs
all fourdatabase and failure when missingSolnix apropos reads the whatis database created by man -w and fails if it is absent. Linux uses a database updated by mandb. FreeBSD and OpenBSD use makewhatis(8) databases. NetBSD uses a SQLite database built by makemandb(8).
Source: Solnix apropos(1) DESCRIPTION; Linux apropos(1) DESCRIPTION; FreeBSD apropos(1) DESCRIPTION; OpenBSD apropos(1) DESCRIPTION; NetBSD apropos(1) DESCRIPTION
all fourwhat is searchedSolnix apropos matches keyword against each page's NAME line only. FreeBSD and OpenBSD search the Nm and Nd macro keys by default and can query other mdoc keys. Linux searches names and descriptions. NetBSD searches the full text of all man pages.
Source: Solnix apropos(1) DESCRIPTION; FreeBSD apropos(1) Macro Keys; OpenBSD apropos(1) Macro Keys; Linux apropos(1) DESCRIPTION; NetBSD apropos(1) DESCRIPTION
Linux, FreeBSD, OpenBSDregular expressionsSolnix apropos treats each keyword as a plain word, matched case-insensitively and as part of longer words. Linux treats keywords as regular expressions by default. FreeBSD and OpenBSD use case-insensitive extended regular expression matching by default. A pattern that works there is not documented as working on Solnix.
Source: Solnix apropos(1) DESCRIPTION; Linux apropos(1) -r; FreeBSD apropos(1) DESCRIPTION; OpenBSD apropos(1) DESCRIPTION
Linux, FreeBSD, OpenBSDmultiple keywordsSolnix says each word is considered separately. The page does not mention an and operator. Linux -a shows only items matching all keywords. FreeBSD and OpenBSD join terms with -a and -o, and multiple terms imply pairwise -o.
Source: Solnix apropos(1) DESCRIPTION; Linux apropos(1) -a; FreeBSD apropos(1) DESCRIPTION (expression); OpenBSD apropos(1) DESCRIPTION (expression)
FreeBSD, OpenBSD, NetBSD-s sectionSolnix -s section restricts the search to one section. FreeBSD and OpenBSD -s does the same. NetBSD also takes -1 to -9 as abbreviations. On Linux, -s takes a colon- or comma-separated list, and a plain 3 also includes 3perl, 3x and so on.
Source: Solnix apropos(1) -s; Linux apropos(1) -s; FreeBSD apropos(1) -s; NetBSD apropos(1) -s
all four-M meaningSolnix -M path replaces the default search path and overrides MANPATH. FreeBSD and OpenBSD -M path replaces the default list of paths, and their -m path prepends. Linux -M path overrides MANPATH. On NetBSD, -M means do not show match context.
Source: Solnix apropos(1) -M; Linux apropos(1) -M; FreeBSD apropos(1) -M, -m; OpenBSD apropos(1) -M, -m; NetBSD apropos(1) -M, -m
all four-m meaningSolnix apropos has no -m. On Linux, -m system searches other operating systems' pages. On FreeBSD and OpenBSD, -m path prepends to the search path. On NetBSD, -m shows the match context, which is the default.
Source: Solnix apropos(1) SYNOPSIS; Linux apropos(1) -m; FreeBSD apropos(1) -m; OpenBSD apropos(1) -m; NetBSD apropos(1) -m
all four-a, -l, -C and architecture optionsSolnix has none of these. On Linux, -a requires all keywords and -l stops truncation to terminal width. On FreeBSD and OpenBSD, -a shows full pages. On NetBSD, -l selects legacy mode. -C names a config file on all four counterparts. -S selects an architecture on the BSDs.
Source: Solnix apropos(1) SYNOPSIS; Linux apropos(1) -a, -l, -C; FreeBSD apropos(1) -a, -C, -S; OpenBSD apropos(1) -a, -C, -S; NetBSD apropos(1) -l, -C, -S
Linuxexit statusLinux apropos exits 16 when nothing matches the criteria. The Solnix page has no EXIT STATUS section, so its exit codes are not documented.
Source: Linux apropos(1) EXIT STATUS; Solnix apropos(1) (no EXIT STATUS section)
NetBSDranking and result limitNetBSD ranks results by relevance using stemming and term weighting, and -n limits the result count. The Solnix page documents neither ranking nor a limit.
Source: NetBSD apropos(1) DESCRIPTION, -n; Solnix apropos(1) OPTIONS
all fourenvironment variablesSolnix uses MANPATH and PATH to find the whatis database. Linux adds SYSTEM, MANWIDTH and POSIXLY_CORRECT. NetBSD adds APROPOS (default options) and PAGER. The FreeBSD and OpenBSD text shown names MANPAGER, but the bundle is trimmed there.
Source: Solnix apropos(1) ENVIRONMENT; Linux apropos(1) ENVIRONMENT; NetBSD apropos(1) ENVIRONMENT VARIABLES; FreeBSD apropos(1) ENVIRONMENT
FreeBSD, OpenBSDwhatis implementationOn Solnix, whatis is a separate invocation that matches whole words, and apropos is man -k. On FreeBSD and OpenBSD, whatis is a synonym for apropos -f, which searches names only.
Source: Solnix apropos(1) DESCRIPTION; FreeBSD apropos(1) DESCRIPTION, -f; OpenBSD apropos(1) DESCRIPTION, -f

Standards

  • POSIX: apropos is not a POSIX.1-2024 utility.
  • Solnix: Interface Stability: Committed.

Writing portable scripts

  • Use only single plain keywords and, at most, -s section in portable scripts. Regex, expression and -M/-m semantics differ across all five systems.
  • Do not rely on the exit status for no match. Only Linux documents one (16). Check whether the output is empty instead.

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.