首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash:如何搜索path中的可执行文件?

Bash:如何搜索path中的可执行文件?
EN

Stack Overflow用户
提问于 2012-04-19 19:45:33
回答 1查看 666关注 0票数 1

我在/usr/bin中有一个"gtags“可执行文件,但这是一个较旧的文件。然后我编译了一个新的gtag,"make install“将它放在/usr/local/bin中。然后我删除了/usr/bin中的那个。但是当我在shell中输入"gtags“时,它告诉我找不到"/usr/bin/gtags”。但是我在/usr/local/bin中有一个"gtags“,而/usr/local/bin在路径中。另外,在我的路径中,在/usr/bin之前搜索/usr/local/bin,为什么shell只在/usr/bin中检查“gtag”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-19 21:35:53

使用bash内置命令hash

代码语言:javascript
复制
[root@localhost ~]# touch /bin/test.sh
[root@localhost ~]# chmod 755 /bin/test.sh
[root@localhost ~]# test.sh
[root@localhost ~]# mv /bin/test.sh /usr/local/bin/
[root@localhost ~]# test.sh
-bash: /bin/test.sh: No such file or directory
[root@localhost ~]# hash test.sh
[root@localhost ~]# test.sh

发生这种情况的原因是bash“缓存”了二进制文件在$PATH中的位置,这样它就不必在每次想要运行它的时候都找到它。这是性能方面的问题。如果不带参数地运行"hash“,它将报告运行的命令、运行次数以及运行位置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10227319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档