在命令行中输入命令,有时候用一个中划线 -
(短选项),有时候用两个 --
(长选项),它们之间有什么区别吗?
短选项(Short Options)
短选项用一个单独的字母作为标志,通常也是一个选项英语的缩写。例如:
-
-a
表示所有(all) -
-c
表示命令(command) -
-f
表示文件(file) -
-V
表示版本(version)
多个短选项可以连写,如ls -a -l
可以写成 ls -al
,而 git -am
也等价于 git -a -m
长选项(Long Options)
单独字母的数量毕竟有限,会不够用,而且表达的意思不够明确,于是就有了长选项--
,后面可以跟一串单词,如 --version
、--all
。参数可以放在后面用空格隔开,也可以使用 =
,如 --file foo.bar
等价于 --file=foo.bar
,短选项和长选项可以表达相同的意思,例如:
npm install express --save
npm install express -S
复制代码
其他用法
有时候会看到 -
或者 --
独立存在,即后面没有紧跟着单词或字母,是为了分隔 [选项] 和 [参数],例如:
wget -O - https://www.baidu.com/
复制代码
这里的 -
代表输出到 stdout 。
有时是为了给前一个程序的选项或参数里的程序传参数,比如:
pm2 start a.js -- --port 80
复制代码
这里 --
后面的参数其实是传给 a.js 的,而不是给 pm2 的。 --
代表后面的参数不解析,最常见的场景是在 npm scripts 中进行设置:
"start": "egg-scripts start"
复制代码
那当你执行下面的命令时:
npm start -s -- --workers=1
复制代码
第一个 -s
是 npm 本身的参数,代表静默,后面的 workers 参数不解析,直接传递进去,相当于执行:
egg-scripts start --workers=1
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END