您如何解释这个复杂的手册页语法?

d-b*_*d-b 1 man options syntax

我正在手册页上阅读此内容:

[-n number-to-stat[:max-size[:min-size][:num-directories[:chunk-size]]]]
Run Code Online (Sandbox Code Playgroud)

我将其解释为-n可选,但如何指定num-directories

最好我不想为number-to-stat, max-size, min-size和输入任何内容chunk-size,只需给出一个值num-directories- 我该如何表达?

pat*_*ron 5

通常的约定是方括号将可选的内容分组。您有多层嵌套方括号需要解释。方括号将数学表达式中的括号等内容分组 - 一组方括号内的所有内容都必须被视为一个单元。

整个构造位于方括号中 - 这意味着整个“块”是可选的 - 它可以作为一个单元存在,也可以不存在。

假设我们希望它在那里,所以让我们去掉最外层的方括号,然后剩下:

-n number-to-stat[:max-size[:min-size][:num-directories[:chunk-size]]]

这意味着,如果存在原始构造中的任何内容,则它必须以 开头-n,后跟number-to-stat。请注意,在这种情况下, 不是number-to-stat可选的 - 如果存在,则它后面必须跟有. 接下来的所有内容都在另一组方括号内,因此它作为一个单元也是可选的。-nnumber-to-stat

如果 后面有任何内容number-to-stat,则必须采用以下形式:

:max-size[:min-size][:num-directories[:chunk-size]]

这意味着表达式的下一部分必须是 :max-size. 可以选择后跟:min-size- 或不跟 -,如您所愿......但它本身位于另一组方括号中,因此它是一个单元,独立于其余部分。

无论是否:min-size存在,您都可以选择附加:num-directories,如果存在,您可以选择附加:chunk-size到它。如果您没有放置 a :num-directories,则无法放置 a :chunk-size,因为它们位于一组方括号内。

要回答您的直接问题,如果您-n完全使用该选项,则不能省略number-to-stat, 这是必需的。您可以省略:max-size,但如果您这样做,您就无法提供:min-size(我知道您说过您无论如何都不想提供)。之后,你可以给出:num-directories,也可以省略:chunk-size。当然,如果您不提供-n,那么您就无法提供其余任何内容。

当然,这一切都取决于您给出的示例以文档中通常使用的方式使用方括号的假设。