使用
man
查看命令时对 SYNOPSIS 中各种符号的意义产生困惑,关于[
]
...
|
这些符号的含义好像明白但又感觉似是非懂,这篇文章会对这个问题做一个总结。
问题
使用man查看find会看到如下SYNOPSIS
SYNOPSIS
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
归结下来疑问点有这么几个
- SYNOPSIS 是否是命令的语法描述?
-
[
]
的意义是什么,是可选的意思么? -
|
是表示OR么? -
...
是否是入参个数不限? - SYNOPSIS 是否符合正则表达式?
验证
在CLI中执行 find
会提示
➜ ~ find
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
可以发现path不在中括号中,那么接着执行 find .
结果成功。也就是说要有至少一个路径参数才能正确执行。
答案
- bold text 粗体字表示必须按照提示输入。
- italic text 斜体字表示需要用合适的参数替代。需要注意最下面三行表述,由于输出设备的差别有些场景下斜体字会替代为下划线或者彩色字符串。
- 任何被
[ ]
包围参数表示可选类型,可以使用或者不使用。 - 被
< >
保卫的参数表示必须参数。 - 被
|
分割的可选参数是不可以同时被使用的。 - 参数后面跟着
...
代表参数可以是多个。 - 被
[]
包围的表达式后面跟着...
代表表达式可以是多个。
以上答案已经可以对付日常使用
以下是内容的扩展
事实上这是遵循POSIX标准的一种表达,目的是通过标准化的制定,将不同系统领域中的表述达到统一从而简化跨域间的沟通与兼容。所以为了能更接近答案就需要对POSIX的 实用惯例 有所了解。
1. 参数语法
utility_name[-a][-b][-c option_argument]
[-d|-e][-f[option_argument]][operand...]
通常 SYNOPSIS 会对使用者提供一些提示
- utility_name 是命令的名称,后面会跟着一些可选参数或者是一些操作符。由
-
与单个字符组成的参数比如-a
被称为可选项,甚至有时候会在后面跟上 option-argument 显示的指出是可选参数比如[-c option_argument]
ref
Utility Conventions
Mastering Linux Man Pages - A Definitive Guide
Understand synopsis in manpage
网友评论