find 命令的手册页的概要部分是否错误?

tim*_*ram 3 shell man find command syntax

所以,当我忘记如何运行某个命令时,我一直试图养成在开始谷歌之前先查看手册页的习惯。

我今天正在查看 find 命令的手册页,并在概要部分中将命令的格式指定为:

SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
Run Code Online (Sandbox Code Playgroud)

这不是表明选项必须在路径之前,然后是表达式吗?或者概要没有指定顺序?

当我使用 find 时,虽然我必须在选项之前指定路径,如下所示:

find . -cmin -10 -ls
Run Code Online (Sandbox Code Playgroud)

Sté*_*las 6

-cminand-ls是作为表达式的一部分的谓词,而不是选项。

请注意,您可以使用 标记选项的结尾--,但在其之后仍然允许使用谓词。

使用 GNU find,它允许省略路径

find -- -L
Run Code Online (Sandbox Code Playgroud)

会抱怨未知的 -L 谓词(即使-L是一个实际上具有等效谓词的有效选项)。-follow

这就是为什么同时

find "$file"
Run Code Online (Sandbox Code Playgroud)

喜欢

wc "$file"
Run Code Online (Sandbox Code Playgroud)

$file-.开头时无法正常工作。

Doingwc -- "$file"修复了它wc(除了在 的特殊情况下file='-')但不修复它find -- "$file"。FreeBSDfindfind -f "$file"这个功能。