![命令中的“-”和“--”有什么区别?](https://linux22.com/image/857461/%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%E2%80%9C-%E2%80%9D%E5%92%8C%E2%80%9C--%E2%80%9D%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我经常看到单破折号-
或双破折号--
后跟 Linux 命令或其他已安装的 Linux 程序。
单破折号和双破折号有什么区别?
只是缩写吗?例如,-v
意思是--verbose
“大多数时候”。
答案1
这是惯例问题。POSIX 标准程序通常只有单字符选项,并且都以单个连字符作为前缀。据我所知,较长的版本是 GNU 为提高清晰度而做出的改进,通常以双连字符作为前缀。您可以在用于解析选项的库和程序中分别看到这一点 -getopt
和gnu-getopt
。非 GNU 和非 POSIX 兼容程序可能会完全执行其他操作。请注意,您真的无法确定参数的长格式在各个程序之间是否相同。-f
通常表示--force
,但不表示 with apt-get install
(常见的误解)。-v
可能表示版本 - 通常,或--verbose
,等等。请查看手册页或其他文档以确保无误。还可以查看维基百科上有关 getopt 的文章. 所有这些都比 Linux 早了十年甚至更久。
dd
是一个例子POSIX 标准实用程序没有任何带连字符的选项根本.find
是典型的例子POSIX 标准实用程序具有带单个连字符的单词选项 - 几乎所有的find
选项都是多个字符长。ps
支持多种选项样式:
This version of ps accepts several kinds of options:
1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
GNUtar
还支持多种选项样式。
从使用角度来说,如果您能确保脚本将在兼容的环境中运行,则最好在脚本中使用长选项 - 清晰度的提高在调试时是一种福音。从可移植性角度来说,最好使用短选项。
答案2
通常 - 选项可以链接在一起,就像pacman -Syu
相当于pacman -S -y -u
, 和 -- 选项通常采用一个参数,如./configure --prefix=/usr