.TH FIND 1 .UC .SH NAME find \- find files .SH SYNTAX .B find pathname-list expression .SH DESCRIPTION .I Find recursively descends the directory hierarchy for each pathname in the .I pathname-list (i.e., one or more pathnames) seeking files that match a boolean .I expression written in the primaries given below. In the descriptions, the argument .I n is used as a decimal integer where .I +n means more than .I n, .I \-n means less than .I n and .I n means exactly .IR n . .TP 10n .BR \-\^name " filename" True if the .I filename argument matches the current file name. Normal shell argument syntax may be used if escaped (watch out for `[', `?' and `*'). .TP .BR \-\^perm " onum" True if the file permission flags exactly match the octal number .I onum (see .IR chmod (1)). If .I onum is prefixed by a minus sign, more flag bits (017777, see .IR stat (2)) become significant and the flags are compared: .IR (flags&onum)==onum . .TP .BR \-\^type " c" True if the type of the file is .I c, where .I c is .B "b, c, d, l, q" or .B f for block special file, character special file, directory, symbolic link, quota, or plain file. .TP .BR \-\^links " n" True if the file has .I n links. .TP .BR \-\^user " uname" True if the file belongs to the user .I uname (login name or numeric user ID). .TP .BR \-\^group " gname" True if the file belongs to group .I gname (group name or numeric group ID). .TP .BR \-\^size " n" True if the file is .I n blocks long (1024 bytes per block). .TP .BR \-\^inum " n" True if the file has inode number .I n. .TP .BR \-\^atime " n" True if the file has been accessed in .I n days. .TP .BR \-\^mtime " n" True if the file has been modified in .I n days. .TP .BR \-\^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. .TP .BR \-\^ok " command" Like .B \-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 .BR y . .TP .B \-\^print Always true; causes the current pathname to be printed. .TP .BR \-\^newer " file" True if the current file has been modified more recently than the argument .I file. .PP The primaries may be combined using the following operators (in order of decreasing precedence): .TP 4 1) A parenthesized group of primaries and operators (parentheses are special to the shell and must be escaped). .TP 4 2) The negation of a primary (`!' is the unary .I not operator). .TP 4 3) Concatenation of primaries (the .I and operation is implied by the juxtaposition of two primaries). .TP 4 4) Alternation of primaries .RB "(`" \-o "' is the" .I or operator). .SH EXAMPLE To remove all files named `a.out' or `*.o' that have not been accessed for a week: .IP "" .2i find / \\( \-name a.out \-o \-name '*.o' \\) \-atime +7 \-exec rm {} \\; .PP To find a file named man.1 and print the absolute pathname: .IP "" .2i find /usr -name man.1 -exec ls {} \\; .SH FILES /etc/passwd .br /etc/group .SH "SEE ALSO" sh(1), test(1), filsys(5) .SH BUGS The syntax is painful.