-.I uname
-(login name or numeric user ID).
-.TP
-.B \-nouser
-True if the file belongs to a user
-.I not
-in the /etc/passwd database.
-.TP
-.BR \-group " gname"
-True if the file belongs to group
-.I gname
-(group name or numeric group ID).
-.TP
-.B \-nogroup
-True if the file belongs to a group
-.I not
-in the /etc/group database.
-.TP
-.BR \-size " n"
-True if the file is
-.I n
-blocks long (512 bytes per block).
-.TP
-.BR \-inum " n"
-True if the file has inode number
-.I n.
-.TP
-.BR \-atime " n"
-True if the file has been accessed in
-.I n
-days.
-.TP
-.BR \-mtime " n"
-True if the file has been modified in
-.I n
-days.
-.TP
-.BR \-exec " command"
-True if the executed command returns
-a zero value as exit status.
-The end of the command must be punctuated by an escaped
-semicolon.
-A command argument `{}' is replaced by the
-current pathname.
-.TP
-.BR \-ok " command"
-Like
-.B \-exec
-except that the generated command is written on
-the standard output, then the standard input is read
-and the command executed only upon response
-.BR y .
-.TP
-.B \-print
-Always true;
-causes the current pathname to be printed.
-.TP
-.B \-ls
-Always true;
-causes current pathname to be printed together
-with its associated statistics.
-These include (respectively) inode number,
-size in kilobytes (1024 bytes),
-protection mode,
-number of hard links,
-user,
-group,
-size in bytes,
-and modification time.
-If the file is a special file
-the size field will instead contain the major and minor
-device numbers.
-If the file is a symbolic link the
-pathname of the linked-to file is printed preceded by ``->''.
-The format is identical to that of ``ls -gilds''
-(note however that formatting is done internally,
-without executing the ls program).
-.TP
-.BR \-newer " file"
-True if
-the current file has been modified more recently than the argument
-.I file.
-.TP
-.BR \-cpio " file"
-Write the current file on the argument
-.I file
-in
-.I cpio
-format.
-.TP
-.B \-xdev
-Always true;
-causes find
-.I not
-to traverse down into a file system different
-from the one on which current
-.I argument
-pathname resides.
-.TP
-.B \-follow
-Always true;
-causes find to traverse symbolic links to directories.
-Normally find does not traverse symbolic links.
-.PP
-The primaries may be combined using the following operators
-(in order of decreasing precedence):
-.TP 4
-1)
-A parenthesized group of primaries and operators
-(parentheses are special to the Shell and must be escaped).
-.TP 4
-2)
-The negation of a primary
-(`!' is the unary
-.I not
-operator).
-.TP 4
-3)
-Concatenation of primaries
-(the
-.I and
-operation
-is implied by the juxtaposition of two primaries).
-.TP 4
-4)
-Alternation of primaries
-.RB "(`" \-o "' is the"
-.I or
-operator).
-.SH EXAMPLES
-To typeset all variants of manual pages for `ls':
-.IP
-vtroff -man `find '*man*/ls.?'`
-.PP
-To remove all files named
-`a.out' or `*.o' that have not been accessed for a week:
-.IP "" .2i
-find / \e( \-name a.out \-o \-name '*.o' \e) \-atime +7 \-exec rm {} \e\;
-.SH FILES
-.nf
-.ta \w'/etc/passwd 'u
-/etc/passwd
-/etc/group
-.fi
-.SH "SEE ALSO"
-list(1), sh(1), test(1), fs(5)
-.SH BUGS
-The syntax is painful.
-.PP
-More than one `-newer' option does not work properly.
+.Ar uname .
+If
+.Ar uname
+is numeric and there is no such user name, then
+.Ar uname
+is treated as a user id.
+.Tp
+.Pp
+All primaries which take a numeric argument allow the number to be
+preceded by a plus sign (``+'') or a minus sign (``\-'').
+A preceding plus sign means ``more than
+.Ar n ' ' ,
+a preceding minus sign means ``less than
+.Ar n ' '
+and neither means ``exactly
+.Ar n ' ' .
+.Sh OPERATORS
+The primaries may be combined using the following operators.
+The operators are listed in order of decreasing precedence.
+.Di L
+.Dp Cx Ic \&(
+.Ar expression
+.Cx \&)
+.Cx
+This evaluates to true if the parenthesized expression evaluates to
+true.
+.Pp
+.Dp Cx Ic \&!
+.Cx \&\ \&
+.Ar expression
+.Cx
+This is the unary NOT operator.
+It evaluates to true if the expression is false.
+.Pp
+.Dp Cx Ar expression
+.Cx \&\ \&
+.Ic and
+.Cx \&\ \&
+.Ar expression
+.Cx
+.Dp Cx Ar expression expression
+.Cx
+The
+.Ic and
+operator is the logical AND operator.
+As it is implied by the juxtaposition of two expressions it does not
+have to be specified.
+The expression evaluates to true if both expressions are true.
+The second expression is not evaluated if the first expression is false.
+.Pp
+.Dp Cx Ar expression
+.Cx \&\ \&
+.Ic or
+.Cx \&\ \&
+.Ar expression
+.Cx
+The
+.Ic or
+operator is the logical OR operator.
+The expression evaluates to true if either the first or the second expression
+is true.
+The second expression is not evaluated if the first expression is true.
+.Dp
+.Pp
+All operands and primaries must be separate arguments to
+.Nm find .
+Primaries which themselves take arguments expect each argument
+to be a separate argument to
+.Nm find .
+.Sh EXAMPLES
+.Pp
+The following examples are shown as given to the shell:
+.Tw findx
+.Tp Li find / \e! name "*.c" print
+Print out a list of all the files whose names do not end in ``.c''.
+.Tp Li find / newer ttt user wnj print
+Print out a list of all the files owned by user ``wnj'' that are newer
+than the file ``ttt''.
+.Tp Li find / \e! \e( newer ttt user wnj \e) print
+Print out a list of all the files which are not both newer than ``ttt''
+and owned by ``wnj''.
+.Tp Li find / \e( newer ttt or user wnj \e) print
+Print out a list of all the files that are either owned by ``wnj'' or
+that are newer than ``ttt''.
+.Tp
+.Sh SEE ALSO
+.Xr chmod 1 ,
+.Xr sh 1 ,
+.Xr test 1 ,
+.Xr stat 2 ,
+.Xr umask 2 ,
+.Xr getpwent 3 ,
+.Xr getgrent 3 ,
+.Xr strmode 3
+.Sh STANDARDS
+The
+.Nm find
+utility syntax is a replacement for the syntax specified by the POSIX
+1003.2 standard.
+The standard syntax is also supported; see the COMPATIBILITY section
+below for details.
+.Pp
+The
+.Fl s
+option as well as the primaries
+.Ic inum
+and
+.Ic ls
+are extensions to the POSIX standard.
+.Sh COMPATIBILITY
+The traditional, and standardized, syntax for
+.Nm find
+is as follows.
+All of the primaries are preceded by a dash (``\-''), i.e. the
+primary ``group'' is specified as ``\-group''.
+The
+.Fl d ,
+.Fl s ,
+and
+.Fl x
+options are implemented using the primaries ``\-depth'', ``\-follow'',
+and ``\-xdev''.
+These primaries always evaluate to true.
+The operator ``or'' is implemented as ``\-o'', and the operator
+``and'' is implemented as ``\-a''.
+The set of file trees to be traversed are specified as the first operands
+to
+.Nm find .
+The first operand beginning with a dash (``\-''), exclamation point (``!'')
+or left parenthesis (``('') is assumed to be the beginning of the expression
+and the end of the files to be traversed.
+.Pp
+The
+.Nm find
+syntax was changed for two reasons.
+The first is that the ``\-depth'', ``\-follow'' and ``\-xdev'' primaries
+are really global variables that take effect before the traversal begins.
+This causes some legal expressions to have unexpected results.
+An example is the expression ``\-print \-o \-depth''.
+As \-print always evaluates to true, the standard order of evaluation
+implies that \-depth would never be evaluated.
+This is not the case.
+.Pp
+The second reason is that traversing file trees with names beginning with
+a dash, exclamation point or left parenthesis was impossible.
+.Sh BUGS
+The special characters used by
+.Nm find
+are also special characters to many shell programs.
+In particular, the characters ``*'', ``['', ``]'', ``?'', ``('', ``)'',
+``!'', ``\e'' and ``;'' may have to be escaped from the shell.