PATH 问题:bash:/usr/local/bin/adb:没有此文件或目录

PATH 问题:bash:/usr/local/bin/adb:没有此文件或目录

我已经安装了 adb 和 fastboot(用于 Android 调试和开发)。以前,当我输入时,adb它会启动 adb 的命令行帮助。现在它显示: bash: /usr/local/bin/adb: No such file or directory 好像它只在 中寻找它/usr/local/bin/adb,对吗?不过我仍然有它/usr/bin/adb,仍然可以通过输入绝对路径来使用它。

此外,我的 Bash Aliases 文件中有几个别名;其中一个是sysupgrade(它的作用与听起来一样),但当我今天尝试时,它失败了。所以我运行了下几行在终端在论坛上对一些帮助的解释是错误的,论坛上说把它放进去/etc/profile

PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
export PATH

但是我的别名现在可以用了!只是 adb 和 fastboot 不行。我试过了whichnping都试过/usr/bin了,都有效。

更新

输出echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

更新 2

hash -r没有显示任何内容。但hash显示:

hits    command
   1    /usr/local/bin/adb

答案1

adb在 处进行了哈希处理/usr/local/bin/adb,这意味着 shell 会记住它的位置,并且不会再次查看 PATH 以查看它是否已被删除/移动。通常hash -r会取消哈希处理所有内容,包括adb,但在这种情况下没有这样做 - 不确定为什么,但运行hash -d adb也会这样做。重新启动 shell 也会取消哈希处理所有内容。

type adb如果你在修复问题之前运行过,你会看到以下内容:

adb is hashed (/usr/local/bin/adb)

type这就是为什么比 更好的原因之一which

答案2

我仍然无法确定问题的根本原因,但经过反复试验后我解决了它。

我做到which adbwhich fastboot

/usr/local/bin/adb结果表明:/usr/local/bin/fastboot

我就这么做 sudo rm /usr/local/bin/adbsudo rm /usr/local/bin/fastboot

退出终端/重新启动,就可以了。

现在正确执行adbfastboot/usr/bin/adb/usr/bin/fastboot

相关内容