home *** CD-ROM | disk | FTP | other *** search
- .th FIND I 5/15/74
- .sh NAME
- find \*- find files
- .sh SYNOPSIS
- .bd find
- pathname expression
- .sh DESCRIPTION
- .it Find
- recursively descends
- the directory hierarchy from
- .it pathname
- seeking files that match a boolean
- .it expression
- written in the primaries given below.
- In the descriptions, the argument
- .it n
- is used as a decimal integer
- where
- .it +n
- means more than
- .it n,
- .it \*-n
- means less than
- .it n
- and
- .it n
- means exactly
- .it n.
- .s3
- .lp +16 16
- \fB\*-name\fR filename True if the
- .it filename
- argument matches the current file name.
- Normal
- .it Shell
- argument syntax may be used if escaped (watch out for
- `[', `?' and `*').
- .s3
- .lp +16 16
- \fB\*-perm\fR onum \c
- True if the file permission flags
- exactly
- match the
- octal number
- .it onum
- (see chmod(I)).
- If
- .it onum
- is prefixed by a minus sign,
- more flag bits (017777, see stat(II)) become significant and
- the flags are compared:
- .it "(flags&onum)==onum."
- .s3
- .lp +16 16
- \fB\*-type\fI c\fR True if the type of the file
- is
- .it c,
- where
- .it c
- is
- .bd "b, c, d"
- or
- .bd f
- for
- block special file, character special file,
- directory or plain file.
- .s3
- .lp +16 16
- \fB\*-links\fI n\fR \c
- True if the file has
- .it n
- links.
- .s3
- .lp +16 16
- \fB\*-user\fR uname \c
- True if the file belongs to the user
- .it uname.
- .s3
- .lp +16 16
- \fB\*-group\fR gname \c
- As it is for
- .bd \*-user
- so shall it be for
- .bd \*-group
- (someday).
- .s3
- .lp +16 16
- \fB\*-size\fI n\fR \c
- True if the file is
- .it n
- blocks long (512 bytes per block).
- .s3
- .lp +16 16
- \fB\*-atime\fI n\fR \c
- True if the file has been accessed in
- .it n
- days.
- .s3
- .lp +16 16
- \fB\*-mtime\fI n\fR \c
- True if the file has been modified in
- .it n
- days.
- .s3
- .lp +16 16
- \fB\*-exec\fR command \c
- 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.
- .s3
- .lp +16 16
- \fB\*-ok\fR command \c
- Like
- .bd \*-exec
- except that the generated command line is printed
- with a question mark first,
- and is executed only if the user responds
- \fBy\fR.
- .s3
- .lp +16 16
- \fB\*-print\fR \c
- Always true;
- causes the current pathname to be printed.
- .s3
- .i0
- The primaries may be combined with
- these operators
- (ordered by precedence):
- .s3
- .lp +16 16
- \fB!\fR prefix
- .it not
- .s3
- .lp +16 16
- \fB\*-a\fR infix
- .it and,
- second operand evaluated only if first is true
- .s3
- .lp +16 16
- \fB\*-o\fR infix
- .it or,
- second operand evaluated only if first is false
- .s3
- .lp +16 16
- \fB( \fRexpression\fB )\fR parentheses for grouping.
- (Must be escaped.)
- .s3
- .i0
- To remove files named
- `a.out' and `*.o' not accessed for a week:
- .s3
- .lp +.5i 0
- find / "(" \*-name a.out \*-o \*-name "*.o" ")"
- \*-a \*-atime +7 \*-a \*-exec rm {} ";"
- .i0
- .sh FILES
- /etc/passwd
- .sh "SEE ALSO"
- sh (I), if(I), file system (V)
- .sh BUGS
- There is no way to check device type.
- .br
- Syntax should be reconciled with
- .it if.
-