Linux/Unix 命令行中的“--”是什么意思?

Linux/Unix 命令行中的“--”是什么意思?

可能的重复:
“--”(双破折号)是什么意思?

git diff [options] [<commit>] [--] [<path>…]

在这里,我应该如何理解[--]的意思?以及我应该什么时候使用它。

答案1

通常--在命令中使用来指示选项的结束。如果您的文件名以“-”开头或您的输入未知,这非常有用。下面是它的使用示例:

git diff --stat -- --file1 --file2

--file1被视为文件名而不是另一个选项。

答案2

与往常一样,您应该阅读命令的联机帮助页以了解它如何解释其参数。

--通常用于指示命令选项的结束。如果您想传递以 . 开头的文件名或其他参数,这尤其有用-。在可能扩展为以连字符开头的文件名的通配符之前使用它也是一个好主意。 (例如,尝试一下mkdir foo; cd foo; echo >-l; ls *; ls -- *。)

git diff也使用它来指示参数是 a <commit>(指示要比较的修订版)还是 a <path>(指示要比较哪个文件)。它通常可以猜测,但一个值有可能既是有效的提交又是有效的路径。在这种情况下,您可以使用 来git diff foo --指示这foo是一次提交,或者git diff -- foo指示那foo是一个路径。

相关内容