git
。但是我不记得我在哪里安装它,那么哪个命令适合找到它?
#1 楼
如果它在您的路径中,则可以运行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,它将搜索完整的路径名..此外,它仅搜索已配置为搜索的路径。除了正则表达式过滤器之外,没有命令行控件。
– Peter.O
2012年1月7日在21:24
优先选择哪种类型。这很容易引起混淆。
–吉尔斯'所以-不再是邪恶的'
2012年1月7日23:38
@Gilles,这对我来说很有趣,其行为恰好相反:type是一个内置shell,告诉我别名等,并且它是一个外部程序,向我显示了可执行文件的路径...尽管有一个内置的以这种方式不会调用可执行文件。
–quodlibetor
2012年1月10日21:37
@quodlibetor的问题是它不了解shell的内置函数和功能(当您想知道该命令将执行什么操作时,这是很重要的),并且在某些系统上使用了不同的$ PATH。
–吉尔斯'所以-不再是邪恶的'
2012年1月10日在21:42
#2 楼
POSIX标准方法是command -v git
。所有类似UNIX的系统都应支持此功能。评论
我知道这已经一年多了,但这正是我想要的。惊讶的是这不是公认的答案。
– Akoi Meexx
2013年5月5日14:43
#3 楼
whereis git
,您将获得命令的路径。只是git在您的PATH变量中,如果您不是通过软件包管理器安装的,它会更复杂,应该使用
find
或locate
命令。评论
也鼓励使用它。
– Nikhil Mulley
2012年1月7日19:39
@Nikhil类型,而不是哪个。请参阅如何在别名命令上使用哪个?
–吉尔斯'所以-不再是邪恶的'
2012年1月7日23:39
#4 楼
这里的其他答案似乎主要针对现代版本的Linux,因此,如果您碰巧在没有git
,locate
,whereis
或which
的操作系统(例如Solaris,HPUX等)上使用apropos
,则存在始终是旧的备用find
。find / -name git
上面列出的一些较旧版本的系统,可能需要为
-print
提供find
选件。 > find / -name git -print
如果您确实使用
locate
,请确保定期运行updatedb
。 (某些BSD衍生产品上为locate.updatedb
)评论
对于路径中的程序,请使用type;它可靠且便携(30年以前的系统除外)。
–吉尔斯'所以-不再是邪恶的'
2012年1月7日23:40
谢谢@吉尔斯。我从来不知道类型。 :)这绝对是保留曲目!
–蒂姆·肯尼迪
2012年1月9日15:20
可能值得指出的是,无论从根目录开始,find都会对文件系统进行全面的深度优先搜索。因此,找到/ -name git将遍历整个系统。如果知道程序在路径上,通常可以执行IFS =“:”;。 path = $ PATH;设置$ path;对于$ path中的目录;确实找到$ dir -name git;完成了,尽管Unix文件系统足够宽容,如果PATH中有奇怪的字符,这可能会以各种方式破坏。
–quodlibetor
2012年1月9日23:18
实际上,我之前给出的命令将破坏您的PATH,正确的内容(与之前相同)是IFS =“:”;用于$ PATH中的dir;确实找到“ $ dir” -name git;完成。同样,重申一下,此答案仅应由无法访问类型或位置的人使用,即几乎没有人。 @Arcege的答案是正确的。
–quodlibetor
2012年1月10日21:34
#5 楼
要获取已安装程序的路径,请使用whereis
或which
。如果您碰巧忘记了它的名称,则可以将apropos
与实用程序的同义词或说明结合使用,例如apropos "version control"
将找到git
。当然,紧随其后的是whatis
命令,以简要概述程序的功能。但是,这并不适用于系统上的所有程序和功能。例如尝试whatis "the meaning of life, universe and everything"
。评论
我以为它会以“ 42”回来!大声笑。
–乔
2012年1月14日上午9:35
评论
嘿,嘿,“哪个命令”的确是:)