Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ find(I) — UNIX 6th Edition 1.3.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sh (I)

if(I)

system (V)

FIND(I)  −  PWB/UNIX 5/15/74

NAME

find − find files

SYNOPSIS

find pathname expression

DESCRIPTION

Find recursively descends the directory hierarchy from pathname 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 filenameTrue 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 significant and the flags are compared: "(flags&onum)==onum."

−type cTrue 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 replaced 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. 

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

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

!prefix not

−ainfix and, second operand evaluated only if first is true

−oinfix or, second operand evaluated only if first is false

( expression )parentheses for grouping.  (Must be escaped.) 

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. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026