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 -