在Linux命令中参数之前需要破折号吗?

时间:2014-12-12 02:11:57

标签: linux shell command-line-arguments

我发现git --versiongit version都可以。他们会告诉我相同的输出。但是,如果我尝试其他命令,例如ls -lls l,则只有第一个命令有效。

我想知道参数在命令行中是如何工作的。在标志/参数之前的破折号或双破折号何时何地需要?或者在使用shell时我可能错了一些概念。

谢谢!

2 个答案:

答案 0 :(得分:1)

这取决于命令。有一些常见的命令,如git或tar,有可选的破折号。大多数人没有。您真的必须阅读手册页以查看命令所期望的内容。

答案 1 :(得分:0)

在命令行上提供参数基本上有两种样式。

GNU样式的特点是选项看起来像这样(-v)或像这样(--verbose)。单个短划线组的“短”选项和双短划线设置“长”选项。并非每个短期权都有相应的长期权,反之亦然。此语法允许短期选项不合并选项参数(例如,ls -al等同于ls -a -l)。

在BSD风格中,可以有一个如下所示的选项:java -version其中-version是一个选项,可能会也可能不会参数。这种风格已演变成复杂命令具有许多子命令的风格,通常称为“动词”。 Apple在OSX中使用此样式,例如launchctl unload /path/to/some.plist(“卸载”是动词)。

希望这些信息可以帮助您随时阅读文档。您可以通过执行man ls来查找任何命令的选项及其操作。请注意,在某些情况下,给定名称有多个联机帮助页。在这种情况下,您可以提供要查看的手册部分,例如man 1 crontab以查看如何使用编辑用户crontabs的程序,以及man 5 crontab查看这些表格中的条目格式。

了解这些家庭非常有用。这些命令的作者不希望重新实现选项解析,因此他们使用一个公共库来执行此任务。因此,如果您遇到一个新命令,一旦您知道它属于哪个家庭,您将更容易理解该联机帮助页。