search for files in a directory hierarchy
|
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
|
-type c
File is of type c:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link; this is never true if the -L option or the -follow option is in effect,
unless the symbolic link is broken. If you want to search for symbolic links when -L is in
effect, use -xtype.
s socket
D door (Solaris)
|
-name pattern
Base of file name (the path with the leading directories removed) matches shell pattern pattern.
The metacharacters (`*', `?', and `[]') match a `.' at the start of the base name (this is a
change in findutils-4.2.2; see section STANDARDS CONFORMANCE below). To ignore a directory and
the files under it, use -prune; see an example in the description of -path. Braces are not
recognised as being special, despite the fact that some shells including Bash imbue braces with a
special meaning in shell patterns. The filename matching is performed with the use of the
fnmatch(3) library function. Don't forget to enclose the pattern in quotes in order to protect
it from expansion by the shell.
|
expr1 -o expr2
Or; expr2 is not evaluated if expr1 is true.
expr1 -or expr2
Same as expr1 -o expr2, but not POSIX compliant.
|
-not expr
Same as ! expr, but not POSIX compliant.
|
-path pattern
File name matches shell pattern pattern. The metacharacters do not treat `/' or `.' specially;
so, for example,
find . -path "./sr*sc"
will print an entry for a directory called `./src/misc' (if one exists). To ignore a whole
directory tree, use -prune rather than checking every file in the tree. For example, to skip the
directory `src/emacs' and all files and directories under it, and print the names of the other
files found, do something like this:
find . -path ./src/emacs -prune -o -print
Note that the pattern match test applies to the whole file name, starting from one of the start
points named on the command line. It would only make sense to use an absolute path name here if
the relevant start point is also an absolute path. This means that this command will never match
anything:
find bar -path /foo/bar/myfile -print
The predicate -path is also supported by HP-UX find and will be in a forthcoming version of the
POSIX standard.
|
-exec command ;
Execute command; true if 0 status is returned. All following arguments to find are taken to be
arguments to the command until an argument consisting of `;' is encountered. The string `{}' is
replaced by the current file name being processed everywhere it occurs in the arguments to the
command, not just in arguments where it is alone, as in some versions of find. Both of these
constructions might need to be escaped (with a `\') or quoted to protect them from expansion by
the shell. See the EXAMPLES section for examples of the use of the -exec option. The specified
command is run once for each matched file. The command is executed in the starting directory.
There are unavoidable security problems surrounding use of the -exec action; you should use the
-execdir option instead.
-exec command {} +
This variant of the -exec action runs the specified command on the selected files, but the command
line is built by appending each selected file name at the end; the total number of invocations of
the command will be much less than the number of matched files. The command line is built in much
the same way that xargs builds its command lines. Only one instance of `{}' is allowed within the
command. The command is executed in the starting directory.
|
the VLC media player
|