find(1) on Solnix vs Linux and the BSDs

On Solnix, find is the illumos /usr/bin/find. It requires at least one path operand and has only the options -E, -H and -L. There is no -P, -d, -f, -s, -x or -X, and no -D or -O. Depth, symlink following and filesystem limits are expressed as primaries.

What Solnix runs

A default Solnix system runs the illumos /usr/bin/find. /usr/xpg4/bin/find is also shipped; its synopsis is [-H | -L] path... expression, so it lacks -E. The bundle does not say how else the two differ. Solnix-only primaries include -acl, -groupacl, -gsid, -gsidacl, -cpio and -local.

Differences

Compared withTopicWhat differs
Linuxdefault starting pointSolnix find lists path... as a required operand. GNU find makes starting-point optional and assumes `.` when none is given. A Linux script that runs a bare `find -name x` has no documented equivalent on Solnix; give `.` explicitly.
Source: Solnix find(1) SYNOPSIS; Linux find(1) DESCRIPTION (no starting-point, `.` is assumed)
Linux, FreeBSD, NetBSD-P optionSolnix has no -P. Linux, FreeBSD and NetBSD accept -P (never follow symlinks; documented as the default on Linux and FreeBSD). Solnix documents only -H and -L, and the last one given wins. OpenBSD has no -P either.
Source: Solnix find(1) SYNOPSIS, OPTIONS; Linux find(1) -P; FreeBSD find(1) -P; NetBSD find(1) -P; OpenBSD find(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSD-d, -f, -s, -x, -X optionsThe BSDs accept -d (post-order traversal), -f path, -x (stay on one device) and -X (xargs-safe). FreeBSD and NetBSD also accept -s (sorted traversal). Solnix find accepts none of these. Its only options are -E, -H and -L.
Source: Solnix find(1) SYNOPSIS, OPTIONS; FreeBSD find(1) -d -f -s -x -X; OpenBSD find(1) -d -f -x -X; NetBSD find(1) -d -f -s -x -X
Linux-D and -O meaningOn Linux, -D debugopts and -Olevel are options placed before the paths. Solnix has neither. A lower-case -d is a BSD traversal option that does not exist on Solnix. Do not assume the letters carry over.
Source: Linux find(1) SYNOPSIS; FreeBSD/OpenBSD/NetBSD find(1) -d; Solnix find(1) SYNOPSIS
OpenBSD, NetBSD-h meaningOn OpenBSD, -h is an alias for -L. On NetBSD, -h also makes file information come from the link target. Solnix find has no -h; use -L.
Source: OpenBSD find(1) -h; NetBSD find(1) -h; Solnix find(1) SYNOPSIS
Linux, OpenBSD-E for extended regexSolnix /usr/bin/find and FreeBSD and NetBSD accept -E to make -regex and -iregex use extended regular expressions. Linux and OpenBSD do not list -E in their synopses. /usr/xpg4/bin/find on Solnix also lacks it.
Source: Solnix find(1) SYNOPSIS, -E; FreeBSD find(1) -E; NetBSD find(1) -E; Linux find(1) SYNOPSIS; OpenBSD find(1) SYNOPSIS
FreeBSD-follow and -LSolnix documents -follow as a primary that is always true and always evaluated, with unspecified behaviour if -H or -L is also given. FreeBSD calls -follow deprecated and equivalent to -L.
Source: Solnix find(1) -follow; FreeBSD find(1) -L, COMPATIBILITY
FreeBSD, OpenBSD, NetBSD-delete restrictionsSolnix -delete implies -depth, is incompatible with following symlinks, and rejects relative paths starting with `/`. FreeBSD and NetBSD only warn that -delete interacts badly with options that change traversal. The BSD pages list it as a POSIX extension.
Source: Solnix find(1) -delete; FreeBSD find(1) BUGS, STANDARDS; NetBSD find(1) STANDARDS; OpenBSD find(1) STANDARDS
all fourSolnix-only primariesSolnix documents -acl, -groupacl, -gsid and -gsidacl for ACL and Windows SID matching, -cpio to write cpio format, and -local, which reads /etc/dfs/fstypes. None of these appear in the other pages' option or standards text in the bundle.
Source: Solnix find(1) -acl, -groupacl, -gsid, -gsidacl, -cpio, -local; FreeBSD/OpenBSD/NetBSD find(1) STANDARDS
OpenBSDimplicit -printOpenBSD wraps an expression that has no output primary as ( expression ) -print. Linux uses -print when no expression is given. The visible Solnix page text does not document an implicit -print, so add -print explicitly.
Source: OpenBSD find(1) DESCRIPTION; Linux find(1) OPTIONS; Solnix find(1) DESCRIPTION
OpenBSD, NetBSDexit statusSolnix says find returns non-zero if any -exec ... + invocation does. NetBSD says the same and also exits 1 on internal errors. OpenBSD documents 0 on success and >0 on error. The Solnix excerpt has no EXIT STATUS section.
Source: Solnix find(1) -exec; NetBSD find(1) EXIT STATUS; OpenBSD find(1) EXIT STATUS

Standards

  • POSIX: find is a POSIX.1-2024 utility.
  • OpenBSD: The find utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification; options -dfhXx and several primaries are extensions.
  • FreeBSD: The find utility syntax is a superset of the syntax specified by the IEEE Std 1003.1-2001 (“POSIX.1”) standard.
  • NetBSD: The find utility syntax is a superset of the syntax specified by the IEEE Std 1003.2 (“POSIX.2”) standard.

Writing portable scripts

  • Always give an explicit starting path and an explicit action such as -print. Use only -H or -L for symlinks, and put any -name, -type or -exec tests after the paths.
  • Avoid -P, -d, -f, -s, -x, -X, -h and -D in portable scripts. Use the -depth and -xdev primaries and -L instead, but check -xdev against the Solnix page first because the excerpt here is trimmed.

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.