Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux git中的破折号是什么?例如:-a-b-p_Linux_Git_Bash_Shell - Fatal编程技术网

Linux git中的破折号是什么?例如:-a-b-p

Linux git中的破折号是什么?例如:-a-b-p,linux,git,bash,shell,Linux,Git,Bash,Shell,我大体上知道他们是干什么的,但他们是从哪里来的?他们有正式的名字吗?我在shell命令中也经常看到类似的字母后跟破折号 在快速搜索之后,我找不到答案,因为我无法搜索“-a”“-b”等,因为搜索引擎没有找到破折号 编辑:我找到了一个搜索引擎来查找如下内容:它们通常被称为选项;像getopt和popt这样的编程工具或多或少以标准方式解析它们。在Unix中,您会到处遇到它们,例如标准的ls-l选项,它以“长格式”而不是短格式列出 -的要点并不是说它只是一个任意但常规的字符,很少出现在文件名或分支的开头

我大体上知道他们是干什么的,但他们是从哪里来的?他们有正式的名字吗?我在shell命令中也经常看到类似的字母后跟破折号

在快速搜索之后,我找不到答案,因为我无法搜索“-a”“-b”等,因为搜索引擎没有找到破折号


编辑:我找到了一个搜索引擎来查找如下内容:

它们通常被称为选项;像
getopt
popt
这样的编程工具或多或少以标准方式解析它们。在Unix中,您会到处遇到它们,例如标准的
ls-l
选项,它以“长格式”而不是短格式列出


-
的要点并不是说它只是一个任意但常规的字符,很少出现在文件名或分支的开头,因此在工具中比较容易区分“行为不同”和“操作此对象”。

这些被称为开关。它们在命令行中非常常见。大多数开源软件(比如git)都使用像getopt这样的库来读取这些文件。格式非常可预测:

  • -a[值](用于单字母开关)
  • --名称[=值](用于拼写的开关)

在这两种情况下,根据开关的不同,可能需要值,也可能不需要值。在您的示例中,没有使用它们。阅读手册页或运行
命令--help
通常会告诉您支持哪些开关。

破折号标记命令的选项。因此,
-a
是一个选项,
-b
是另一个选项

有破折号的原因是为了让您和命令知道它是一个选项。那么比如说,

git commit --amend main.c
--amend
前面的破折号清楚地表明,
--amend
是一个选项,而
main.c
没有破折号,因此它是一个常规参数


几乎所有的shell命令都是这样。有关更多详细信息,请参见。

除了在其他答案中已解释的内容外,请注意,还有一个
git帮助
com,它将提供有关所有子命令选项的信息

例如,在git help commit的输出中,您将看到以下内容:

选择权

  -a, --all
      Tell the command to automatically stage files that have been modified and deleted, but new files you have not
      told git about are not affected.

啊,就是说,这个选项是用一个完整的单词拼写出来的。谢谢,我一直在想这个问题。谢谢,我一直在想-和-之间的区别,直到今天你和jcollado的帖子。谢谢你简洁的回答,这就是我想要的。