32v 1m find

From Computer History Wiki
Jump to: navigation, search

FIND(1) UNIX Programmer's Manual FIND(1)


find - find files


find pathname-list expression


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

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

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

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

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


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
 {} \;


/etc/passwd /etc/group


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


The syntax is painful.