我经常看到单破折号
单破折号和双破折号有什么区别呢?
这只是缩写吗?例如,大多数情况下
-
或双破折号--
后面跟着Linux命令或其他已安装的Linux程序。单破折号和双破折号有什么区别呢?
这只是缩写吗?例如,大多数情况下
-v
表示--verbose
。-
或双破折号--
后面跟着Linux命令或其他已安装的Linux程序。-v
表示--verbose
。这是一个惯例问题。POSIX标准程序通常只有单个字符选项,它们都以单个连字符为前缀。根据我所知,长版本是GNU改进的清晰度,并且通常以双连字符为前缀。您可以在用于解析选项的库和程序中看到这一点 - 分别是 getopt
和 gnu-getopt
。非GNU和非POSIX兼容的程序可能会完全做出其他操作。请注意,您无法确定参数的长形式在程序之间是否相同。 -f
通常表示 --force
,但在 apt-get install
中不是(常见误解)。 -v
可能表示版本-通常是这样,或者表示 --verbose
等等。请查看手册页面或其他文档以确保。还可以查看 getopt的Wikipedia文章。所有这些都比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.
GNU tar
还支持多种选项样式。
在使用上,如果你能确保脚本将在兼容的环境中运行,建议优先选择长选项 - 这样在调试时可以提高清晰度,真是一大福利。而为了可移植性,短选项更受青睐。
pacman -Syu
相当于 pacman -S -y -u
,而 -- 选项通常需要一个参数,例如 ./configure --prefix=/usr
。