“-”作为命令的参数是什么意思?


Answers:


18

-在文件名参数中使用平均值stdinstdout; 是一种常见约定。tar遵循相同的约定。从手册页:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
这只是一个约定;您需要阅读特定命令的手册,以了解其-含义。到目前为止,Stdin / stdout是最常见的含义,但还有其他含义。例如,对于某些版本,env它意味着“从一个空的环境开始”。
cjm 2011年

0

另一种约定是使用“-”表示标志的结尾和文件名的开头。至少在RedHat 4上,该行为内置于getopt(3)中。我找不到使用'-'表示参数结尾的Red Hat手册页,它们似乎都使用'-'来完成。在这种情况下,awk手册页带有“-”,因此也许只有旧的“传家宝” Unix或Solaris命令使用“-”作为参数-文件名分隔符。


3
--表示选项结束,因此之后的所有操作都是操作数。-不是一个选择,所以它和之后出现的所有内容都是一个操作数。这是标准行为。对于许多命令,例如tar操作数-表示标准输入或输出。在许多外壳上,set - -a都等效于set -- -a,在某些旧的Bourne外壳上set - -a是唯一接受的形式,但这是set内置的例外。
吉尔(Gilles)'所以

Solaris程序主要遵循POSIX标准约定,--将选项与参数分开。
alanc 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.