    FIND(I)                      5/15/74                      FIND(I)

    NAME
         find - find files

    SYNOPSIS
         find pathname expression

    DESCRIPTION
         Find recursively descends the directory hierarchy from path-
         name seeking files that match a boolean  expression  written
         in  the primaries given below.  In the descriptions, the ar-
         gument 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(I)).
                         If onum is prefixed by a  minus  sign,  more
                         flag bits (017777, see stat(II)) become sig-
                         nificant  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 or  f  for  block  special  file,
                         character  special  file, directory or plain
                         file.

         -links n        True if the file has n links.

         -user uname     True if the file belongs to the user  uname.

         -group gname    As it is for -user so shall it be for -group
                         (someday).

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

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

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

         -exec  command   True  if  the executed command returns exit
                         status zero (most commands do).  The end  of
                         the  command  is  punctuated  by  an escaped
                         semicolon.  A command argument `{}'  is  re-
                         placed by the current pathname.

         -ok command     Like -exec except that the generated command
                         line is printed with a question mark  first,
                         and is executed only if the user responds y.

                                  - 1 -

    FIND(I)                      5/15/74                      FIND(I)

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

         The  primaries may be combined with these operators (ordered
         by precedence):

         !               prefix not

         -a              infix and, second operand evaluated only  if
                         first is true

         -o              infix  or,  second operand evaluated only if
                         first is false

         ( expression )  parentheses  for  grouping.   (Must  be  es-
                         caped.)

         To  remove  files named `a.out' and `*.o' not accessed for a
         week:

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

    FILES
         /etc/passwd

    SEE ALSO
         sh(I), if(I), file system(V)

    BUGS
         There is no way to check device type.
         Syntax should be reconciled with if.

                                  - 2 -