xref: /original-bsd/usr.bin/find/find.1 (revision 4caa1449)
@(#)find.1 6.1 (Berkeley) 04/29/85

FIND 1 ""
.AT 3
NAME
find - find files
SYNOPSIS
find pathname-list expression

find name

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 .

The second simplified form will list all files on the system whose pathname contains name. This is similar to find / -mtime +0 -name "*<name>*" -print but much faster. As with -name below, shell syntax may be used for name.

10n -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, l" or s for block special file, character special file, directory, plain file, symbolic link, or socket.

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

-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):

4 1) A parenthesized group of primaries and operators (parentheses are special to the Shell and must be escaped).

4 2) The negation of a primary (`!' is the unary not operator).

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

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

EXAMPLES

To typeset all variants of manual pages for 'ls':

vtroff -man `find '*man*/ls.?'`

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

"" .2i
find / \\( -name a.out -o -name '*.o' \\) -atime +7 -exec rm {} \\;
FILES
/etc/passwd

/etc/group

/usr/lib/find/find.codes coded filenames

"SEE ALSO"
sh(1), test(1), fs(5)

Relevant paper in February, 1983 issue of ;login:.

BUGS
The syntax (except for the second form), is painful.