微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux-bash是否具有缓存以记住上次找到二进制文件的位置?

好的,所以我正在系统中玩耍.我复制了GNU字数统计程序:

cp /usr/bin/wc /usr/bin/wcx

然后我在桌面上的文本文件上运行了wc,并得到了预期的结果:

53 79 907 /home/me/Desktop/mytextfile.txt

到目前为止,没有任何异常.然后我删除(删除)wc

rm /usr/bin/wc

并且该命令返回且没有终端输出.因此它已被删除.

现在,在这一点上,我应该注意,此终端中的PATH是:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/bin:/sbin:/bin:/usr/games: [ETC]

现在,当我运行相同的命令时:

wc /home/me/Desktop/mytextfile.txt

我回来了:

bash: /usr/bin/wc: No such file or directory

现在,很明显,当我删除它时,它应该找不到wc二进制文件.符合预期.但是奇怪的是,bash似乎已经“记住”它最后一次在PATH上找到程序的位置,因为它表明它在/usr/bin中找不到它.

这是bash的实际功能吗?是否有一个缓存,一旦它在PATH中搜索了二进制文件,便知道返回该位置以备将来对该二进制文件的请求?

感谢您帮助清除此问题!

解决方法:

是的bash有一个内部哈希表,可以记住以前使用的命令的完整路径.查看man bash并搜索hash以获取更多详细信息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐