Linux命令行指定参数,有的是用一条竖线「-」,有的是用两条竖线「–」,为什么会有这种区别呢。
例如,查看版本。
|
|
Linux命令行,到底是 - 还是 – 是由其风格决定的,当前主流的风格有如下几种:
- Unix 风格参数,前面加「-」
- GNU 风格参数,前面加「–」
- BSD 风格参数,前面不加符号
Unix风格参数
单破折号「-」开头,后面参数为一个字母,也称为短选项,比如:
|
|
之所以有的会有多个字母,是对多个参数的整合,ll -al
实际上等同于ll -a -l
。
短选项的参数
当短选项需要加参数时,参数和选项间用空格分隔。
|
|
短选项的限制
Unix分隔有一定限制:
- 单独字母的数量有限,可能存在不够用的情况。
- 表达的意思不够明确。
GNU 风格
双破折号 「–」开头,后边参数为单词或短语,也称为长选项,比如:
|
|
长选项的参数
当长选项需要加参数时,参数和选项间用空格或者=
分隔。
|
|
BSD 分隔
无需开头符号,后边参数为一个字母。
|
|
java的特例
|
|
Java9已经解决了这个问题。java --version
和java -version
都可以正常得到结果。