例如,我的系统上安装了git
但是我不记得我在哪里安装它,那么哪个命令适合找到它?

评论

嘿,嘿,“哪个命令”的确是:)

#1 楼

如果它在您的路径中,则可以运行type gitwhich gitwhich命令在获取正确的路径时遇到问题(环境和点文件之间的混乱)。对于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变量中,如果您不是通过软件包管理器安装的,它会更复杂,应该使用findlocate命令。

评论


也鼓励使用它。

– Nikhil Mulley
2012年1月7日19:39

@Nikhil类型,而不是哪个。请参阅如何在别名命令上使用哪个?

–吉尔斯'所以-不再是邪恶的'
2012年1月7日23:39

#4 楼

这里的其他答案似乎主要针对现代版本的Linux,因此,如果您碰巧在没有gitlocatewhereiswhich的操作系统(例如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 楼

要获取已安装程序的路径,请使用whereiswhich。如果您碰巧忘记了它的名称,则可以将apropos与实用程序的同义词或说明结合使用,例如apropos "version control"将找到git。当然,紧随其后的是whatis命令,以简要概述程序的功能。但是,这并不适用于系统上的所有程序和功能。例如尝试whatis "the meaning of life, universe and everything"

评论


我以为它会以“ 42”回来!大声笑。

–乔
2012年1月14日上午9:35