-print是默认操作。一些find谓词被认为是与过滤条件或条件相反的动作。例如,不是动作。是动作,即使它也可以用作条件。-type f-exec
采取的行动包括-print,-exec和-ok。一些find实现具有其他非标准动作谓词像-print0,-printf,-execdir,-okdir,-ls...
find files <some-predicates>
其中任何<some-predicates>包含动作均不等同于:
find files \( <some-predicates> \) -print
(请注意,如果有一些-o运算符,则上面的括号很重要)。
如有疑问,最好是-print显式使用(或-exec printf '%s\0' {} +(或-print0在可用的地方)使用,以便可以对输出进行后处理)。
默认-print操作由POSIX指定。一些旧的find实现需要一个显式的实现-print,但是如今通常在野外找不到这些实现。
还要注意,某些find实现允许省略files,在这种情况下,它们默认情况下是搜索当前目录。对他们来说
find
相当于
find .
find . -print
但是,这不是标准的,因此最好避免。
在更为冗长(有用)的一端,某些find实现还允许将文件路径作为参数传递给-f选项,例如:
find -f "$file1" -f "$file2" -print
它们是唯一find允许将任意文件路径传递到的实现find。其他实现不能接受诸如!或-print...之类的文件路径,因此find "$file" -print(甚至find -- "$file" -print)假定$file不是find谓词的名称(或第一种情况下的选项)。
不幸的是,这也不是标准的,也不是便携式的。