我已经卸载了gnome-screenshot
,但是当我gnome
在终端中写入并点击时TAB
,它仍然建议 gnome-screenshot (和其他 gnome 应用程序,但它是正确的)。如果我想使用已卸载的 gnome-screenshot,bash 会正确告知没有这样的程序。
bash: gnome-screenshot: command not found
which
也找不到截图路径。我从 PATH 中搜索了目录,但那里没有像 gnome-screenshot 这样的文件。
为什么我看到的建议是错误的?
编辑:
谢谢 Kusalananda 的回答,我学到了一些新东西。我还发现我gnome-screenshot='gnome-screenshot -i'
的别名中有.bashrc.
我完全忘记了。愚蠢的我。
答案1
shellbash
会缓存在搜索 中的路径时找到的位置命令$PATH
。这使得 shell 知道egls
是在每次使用时/bin/ls
无需搜索目录。$PATH
ls
当您卸载提供以这种方式缓存的命令的包时,shell 不会知道该命令的缓存位置不再有效,直到您尝试实际使用该命令但失败为止。
您可以清空此缓存以强制 shell 重新扫描$PATH
命令的位置。您可以使用hash -r
(请参阅shellhelp hash
中bash
)来执行此操作。
简而言之,shell 仍然认为该命令gnome-screenshot
存在,因此它补全了该命令的名称。运行hash -r
以使 shell 忘记命令的缓存位置。