终端命令中的“--”是什么意思?

终端命令中的“--”是什么意思?

我见过许多教程使用--after 命令。例如:

command -- 

这是什么--意思?

答案1

用于--指示命令行选项的结束。这使您可以使用以 开头的参数--。例如,如果您创建一个名为 的文件--foo

$ > '--foo'
$ ls
--foo

然后尝试删除它,rm会认为你给它一个参数:

$ rm --foo 
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.

解决这个问题的一种方法是使用--

$ rm -- --foo

这是常见的做法,POSIX 推荐,因此得到很多程序的支持。

答案2

大多数命令都会使用 -- 来告诉命令其他参数应以不同方式处理。一个例子就是上面提到的 rm -- --filename。另一个例子是,像“startx”这样的脚本会自行解释 -- 之前的所有内容,并将其后的所有内容传递给 X 服务器。

相关内容