翻译自:https://askubuntu.com/questions/813303/whats-the-difference-between-one-hyphen-and-two-hyphens-in-a-command
大概上是:
-
从标准输入(stdin)中读取参数或内容(文件描述符为0)--
命令选项的末尾,它之后的都是参数为什么需要这样:
关于 -
:
$ echo foobar | cat - foobar
尽管不加 -
也可以从标准输入(stdin)中读取内容,但有些命令需要它,并在它们的man手册中明确地指出。
关于 --
:
我已经创建了一个文件 --spam
,接下来 cat
这个文件:
$ echo foobar >-spam $ cat -spam cat: invalid option -- 'p' Try 'cat --help' for more information. $ cat -- -spam foobar
没有 --
,cat
把 s
p
a
m
都当作选项。--
明确指出了选项的结尾,在此之后 -spam
被看作是文件。