繁体   English   中英

如何获取Linux命令的完整路径名

[英]How to get full path name of a Linux command

我想找出Linux中命令的文件路径,例如, ls文件路径为/bin/ls 如何找出某些命令的确切路径?

正如所指出的那样, which <progName>会做到这一点。 你也可以尝试:

whereis -b <progName>

这将列出包含progName所有路径。 也就是我的机器上的whereis -b gcc返回:

gcc: /usr/bin/gcc /usr/lib/gcc /usr/bin/X11/gcc

您可以使用which命令。 如果$PATH中有命令,它将显示完整路径:

mureinik@computer ~ $ which cp
/usr/bin/cp

它还将显示有关别名的详细信息:

mureinik@computer ~ $ which ls
alias ls='ls --color=auto'
    /usr/bin/ls

是的,您可以使用which命令找到它

which <command>

例如which cat

/bin/cat

你可以使用which ,它给你命令的路径:

$ which ls
/bin/ls

你可以使用type

 $ type ls
 ls is /bin/ls

您没有指定,您将使用哪个shell,但我强烈建议您使用which ,因为它不一定会,您期望的。 这里有两个例子,结果可能不是你所期望的:

(1)使用bash和命令echo示例:

 which echo

将输出/usr/bin/echo ,但如果在bash脚本中使用echo命令, 则不执行/ usr / bin / echo。 相反,执行内置命令echo ,它的行为类似但不相同。

(2)与实施例的zsh和命令which

which which

将输出以下消息which: shell built-in command (这是正确的,但肯定不是您请求的文件路径),而

/usr/bin/which which

将输出文件路径/usr/bin/which ,但是(如在bash示例中)这不是当你输入which时执行的which

在有些情况下,当你肯定知道 (因为你知道你的应用程序),那which将产生正确的结果,但只要小心,由于内置的命令,别名并参与,您需要先外壳功能,决定要如何处理这些情况,然后根据您使用的shell类型选择适当的工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM