Answers:
如果它在您的路径中,则可以运行type git
或which git
。该which
命令在获取正确的路径时遇到问题(环境和点文件之间的混淆)。对于type
,您可以只获取带有-p
参数的路径。
如果它不在您的路径中,则最好使用进行查找。它将locate -b git
找到名为“ git”的任何内容。这将是一长串的清单,因此最好使用进行限定locate -b git | fgrep -w bin
。
locate
无休止地使用它(它非常快),但是对于那些不了解它的人来说,locate
它的更新只是它的最新数据库更新,它是每天在我的Ubuntu上自动运行的。该刷新命令是sudo updatedb
...还locate
具有内置的正则表达式的能力,所以像这样的命令的工作原理:locate -br "^git$"
... -b`手段限制搜索只是基本名称 ...或没有-b
,它搜索的完整路径。也,它只会搜索您配置为搜索的路径。.除了正则表达式过滤器之外,没有命令行控件。
type
是一个内置shell告诉我别名等信息,并且which
是一个外部程序向我展示可执行文件的路径……尽管如果有一个内置程序进入该可执行文件不会被调用的方式。
which
是它不了解shell的内置函数和功能(当您想知道该命令将执行什么操作时,这是很重要的),并且$PATH
在某些系统上使用了不同的内容。
该POSIX标准要做到这一点的方式是command -v git
。所有类似UNIX的系统都应支持此功能。
whereis git
您将获得命令的路径。
只是如果git在您的PATH变量中,如果您不是通过软件包管理器安装的,则它会更加复杂,您应该使用find
or locate
命令。
which
也鼓励。
这里的其他答案似乎对Linux的现代版本在很大程度上面向,所以如果你使用git
的是没有一个操作系统上locate
,whereis
,which
,或apropos
(如Solaris,HPUX等),那么总有老的待机find
。
find / -name git
上述系统的一个较旧版本,您可能需要-print
提供一个选项find
。
find / -name git -print
如果确实使用locate
,请确保updatedb
定期运行。(locate.updatedb
在某些BSD衍生产品上)
type
。:)这绝对是保留曲目!
find
从您建立根目录的位置开始对文件系统进行全面的深度优先搜索。因此find / -name git
将遍历您的整个系统。如果您知道该程序在您的路径上,您通常可以做IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
,尽管Unix文件系统足够允许,如果您的程序中包含奇怪的字符的话,可以用各种方式破坏它PATH
。
PATH
的正确权限(与以前相同的警告)是IFS=":"; for dir in $PATH; do find "$dir" -name git; done
。另外,重申一下,此答案只能由无法访问type
or which
或or的人使用 locate
,即几乎没有人。@Arcege的答案是正确的。
要获取安装程序的路径,请使用whereis
或which
。如果您碰巧忘记了它的名称,则可以使用apropos
实用程序的同义词或描述,例如apropos "version control"
will find git
。当然,紧随其后的是whatis
用于简要概述程序功能的命令。但是,这并不适用于系统上的所有程序和功能。例如尝试whatis "the meaning of life, universe and everything"
。
which
确实是“ 命令” :)