2.1 find Expressions

The expression that find uses to select files consists of one or more primaries, each of which is a separate command line argument to find. find evaluates the expression each time it processes a file. An expression can contain any of the following types of primaries:

options

affect overall operation rather than the processing of a specific file;

tests

return a true or false value, depending on the file’s attributes;

actions

have side effects and return a true or false value; and

operators

connect the other arguments and affect when and whether they are evaluated.

You can omit the operator between two primaries; it defaults to ‘-and’. See Combining Primaries With Operators, for ways to connect primaries into more complex expressions.

The ‘-print’ action is performed on all files for which the entire expression is true (see Print File Name), unless the expression contains an action other than ‘-prune’ or ‘-quit’. Actions which inhibit the default ‘-print’ are ‘-delete’, ‘-exec’, ‘-execdir’, ‘-ok’, ‘-okdir’, ‘-fls’, ‘-fprint’, ‘-fprintf’, ‘-ls’, ‘-print’ and ‘-printf’.

Options take effect immediately, rather than being evaluated for each file when their place in the expression is reached. Therefore, for clarity, it is best to place them at the beginning of the expression. There are exceptions to this; ‘-regextype’, ‘-daystart’ and ‘-follow’ have different effects depending on where in the command line they appear. This can be confusing, so it’s best to keep them at the beginning, too.

Many of the primaries take arguments, which immediately follow them in the next command line argument to find. Some arguments are file names, patterns, or other strings; others are numbers. Numeric arguments can be specified as

+n

for greater than n,

-n

for less than n,

n

for exactly n.