FIND(1)                                                   FIND(1)

     NAME
          find - find files

     SYNOPSIS
          find pathname-list  expression

     DESCRIPTION
          Find recursively descends the directory hierarchy for each
          pathname in the pathname-list (i.e., one or more pathnames)
          seeking files that match a boolean expression written in the
          primaries given below.  In the descriptions, the argument n
          is used as a decimal integer where +n means more than n, -n
          means less than n and n means exactly n.

          -name filename
                    True if the filename argument matches the current
                    file name.  Normal Shell argument syntax may be
                    used if escaped (watch out for `[', `?' and `*').

          -perm onum
                    True if the file permission flags exactly match
                    the octal number onum (see chmod(1)). If onum is
                    prefixed by a minus sign, more flag bits (017777,
                    see stat(2)) become significant and the flags are
                    compared: (flags&onum)==onum.

          -type c   True if the type of the file is c, where c is b,
                    c, d, f or L for block special file, character
                    special file, directory, plain file or symbolic
                    link.

          -links n  True if the file has n links.

          -user uname
                    True if the file belongs to the user uname (login
                    name or numeric user ID).

          -group gname
                    True if the file belongs to group gname (group
                    name or numeric group ID).

          -size n   True if the file is n blocks long (512 bytes per
                    block).

          -inum n   True if the file has inode number n.

          -atime n  True if the file has been accessed in n days.

          -mtime n  True if the file has been modified in n days.

     FIND(1)                                                   FIND(1)

          -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.

          -ok command
                    Like -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 y.

          -print    Always true; causes the current pathname to be
                    printed.

          -newer file
                    True if the current file has been modified more
                    recently than the argument file.

          The primaries may be combined using the following operators
          (in order of decreasing precedence):

          1)  A parenthesized group of primaries and operators (paren-
              theses are special to the Shell and must be escaped).

          2)  The negation of a primary (`!' is the unary not opera-
              tor).

          3)  Concatenation of primaries (the and operation is implied
              by the juxtaposition of two primaries).

          4)  Alternation of primaries (`-o' is the or operator).

     EXAMPLE
          To remove all files named `a.out' or `*.o' that have not
          been accessed for a week:

            find / \( -name a.out -o -name '*.o' \) -atime +7 -exec rm
            {} \;

     FILES
          /etc/passwd
          /etc/group

     SEE ALSO
          sh(1), test(1), filsys(5)

     BUGS
          The syntax is painful.