FIND(1-BSD) RISC/os Reference Manual FIND(1-BSD)
NAME
find - find files
SYNOPSIS
find pathname-list expression
find pattern
DESCRIPTION
In the first form above, 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 form rapidly searches a database for all path-
names which match pattern. Usually the database is recom-
puted weekly and contains the pathnames of all files which
are publicly accessible. If escaped, normal shell "glob-
bing" characters (`*', `?', `[', and ']') may be used in
pattern, but the matching differs in that no characters
(e.g. `/') have to be matched explicitly. As a special
case, a simple pattern containing no globbing characters is
matched as though it were *pattern*; if any globbing charac-
ter appears there are no implicit globbing characters.
-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.
-fstype type
True if the filesystem to which the file belongs
is of type type, where type is typically ffs (the
4.3BSD Fast File System) or nfs.
-type c True if the type of the file is c, where c is b,
c, d, f, l, p or s for block special file, charac-
ter special file, directory, plain file, symbolic
link, fifo (aka, named pipe), or socket, respec-
tively.
-links n True if the file has n links.
Printed 1/15/91 Page 1
FIND(1-BSD) RISC/os Reference Manual FIND(1-BSD)
-prune Always true. Has the side effect of pruning the
search tree at the file. That is, if the current
pathname is a directory, find will not descend
into that directory.
-depth Always true. Has the side effect of causing a
depth-first search. That is, the children of the
directory are processed before the directory
itself. The options -cpio and -ncpio cause -depth
to be turned on by default.
-user uname
True if the file belongs to the user uname (login
name or numeric user ID).
-nouser True if the file belongs to a user not in the
/etc/passwd database.
-group gname
True if the file belongs to group gname (group
name or numeric group ID).
-nogroup True if the file belongs to a group not in the
/etc/group database.
-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.
-ctime n True if the inode has been changed in n days (see
ls(1) for more information).
-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.
Page 2 Printed 1/15/91
FIND(1-BSD) RISC/os Reference Manual FIND(1-BSD)
-ls Always true; causes current pathname to be printed
together with its associated statistics. These
include (respectively) inode number, size in kilo-
bytes (1024 bytes), protection mode, number of
hard links, user, group, size in bytes, and modif-
ication time. If the file is a special file the
size field will instead contain the major and
minor device numbers. If the file is a symbolic
link the pathname of the linked-to file is printed
preceded by ``->''. The format is identical to
that of ``ls -gilds'' (note however that format-
ting is done internally, without executing the ls
program).
-newer file
True if the current file has been modified more
recently than the argument file.
-cpio file
Write the current file on the argument file in
standard cpio format. Implies -depth.
-ncpio file
Write the current file on the argument file in
ASCII (-C) cpio format. Implies -depth.
-xdev Always true; causes find not to traverse down into
a file system different from the one on which
current argument pathname resides.
-follow Always true; causes find to traverse symbolic
links to directories. Normally find does not
traverse symbolic links.
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 opera-
tor).
3) Concatenation of primaries (the and operation is implied
by the juxtaposition of two primaries).
4) Alternation of primaries (`-o' is the or operator).
EXAMPLES
To find all accessible files whose pathname contains `find':
Printed 1/15/91 Page 3
FIND(1-BSD) RISC/os Reference Manual FIND(1-BSD)
find find
To display all variants of manual pages for `ls':
nroff -man `find '*man*/ls.?'`
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
{} \;
The following will list all files in the current directory
and subdirectories except for files in RCS directories:
find . -name RCS -prune -o -print
FILES
/etc/passwd
/etc/group
/usr/lib/find/find.codes coded pathnames database
SEE ALSO
sh(1), test(1).
fs.ffs(4) in the Programmer's Reference Manual.
Relevant paper in February, 1983 issue of ;login:.
BUGS
The first form's syntax is painful, and the second form's
exact semantics is confusing and can vary from site to site.
More than one -newer option does not work properly.
Page 4 Printed 1/15/91