![](/img/trans.png)
[英]How to get full path from “../” on command line in Linux shell script
[英]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.