在命令行中,-
(单短横线)和--
(双短横线)是两种常见的参数前缀,它们的主要区别如下:
- 短选项(
-
)
• 格式:单个-
后跟一个字母(如-a
、-l
)。
• 特点:
• 通常表示单个字母的缩写(如-h
表示--help
,-v
表示--version
)。
• 多个短选项可以合并书写(如ls -al
等价于ls -a -l
)。
• 参数值可以直接跟在字母后(如-f file.txt
),或用空格分隔(如-f file.txt
)。
• 示例:
ls -a # 显示所有文件(包括隐藏文件)
tar -xzvf # 解压并显示详细过程(合并了-x、-z、-v、-f)
- 长选项(
--
)
• 格式:--
后跟一个单词或短语(如--help
、--version
)。
• 特点:
• 更具可读性,表达更明确(如--all
比-a
更直观)。
• 参数值通常用=
或空格分隔(如--file=foo.txt
或--file foo.txt
)。
• 一般对应短选项的全称(如--help
对应-h
)。
• 示例:
ls --all # 同`-a`
npm install --save-dev # 安装并保存为开发依赖
- 特殊用途
• --
作为分隔符:
单独出现的--
表示后续内容不再解析为选项,而是作为普通参数传递。例如:
npm start -- --port=80 # `--port=80`传递给脚本而非npm
• -
的特殊含义:
某些命令中单独的-
表示标准输入/输出(如cat file.txt | grep "foo" -
)。
- 风格差异
• Unix风格:短选项为主(如-a
)。
• GNU风格:支持长选项(如--all
)。
• BSD风格:部分命令不加-
(如ps aux
)。
总结
类型 | 前缀 | 示例 | 特点 |
---|---|---|---|
短选项 | - |
-h 、-a |
单字母,可合并 |
长选项 | -- |
--help |
单词,易读,支持= 赋值 |
分隔符 | -- |
cmd -- arg |
停止解析后续选项 |
特殊占位符 | - |
wget -O - URL |
表示标准输入/输出 |
具体行为可能因命令而异,建议通过--help
或man
查看具体用法。