Linux 命令中 - (一个连字符)和 -- (两个连字符)的区别

Linux 命令中 - (一个连字符)和 – (两个连字符)的区别

翻译自: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

没有 --cats p a m 都当作选项。-- 明确指出了选项的结尾,在此之后 -spam 被看作是文件。

上一篇:机器学习随记【day01】


下一篇:python-字符串及相关方法