将启动哪个程序

将启动哪个程序

我已将id程序从/usr/bin/目录复制到我的home目录。我不知道id在复制该程序的目录中执行命令后将启动哪一个。

Bash会在变量中搜索程序 PATH还是从目录中执行它?

有什么方法可以检查吗?

答案1

您可以使用type idcommand -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实用程序记住位置的兑现列表。

相关内容