我已将id
程序从/usr/bin/
目录复制到我的home
目录。我不知道id
在复制该程序的目录中执行命令后将启动哪一个。
Bash会在变量中搜索程序 PATH
还是从目录中执行它?
有什么方法可以检查吗?
答案1
您可以使用type id
或command -v id
来查看如何bash
将其解释id
为命令。对我来说,我看到:
$ type id
id is /usr/bin/id
$ command -v id
/usr/bin/id
是的,bash
将会搜索$PATH
,尽管一旦找到它,它就会记住该位置,因此不必每次都进行搜索。如果您在之前运行过它之后移动它,这可能会导致问题。您可以使用hash
命令hash id
查看当前是否存在此类条目。
答案2
shell 将始终PATH
按顺序搜索变量中列出的目录,直到找到匹配的命令。
您可以id
使用以下命令查看它拾取的内容
command -v id
请注意,如果您要移动二进制文件(您不应该这样做),您可能必须运行hash -r
重置bash
实用程序记住位置的兑现列表。