【问题标题】:Command exists on path, but I get "No such file or directory" rather than "command not found"路径上存在命令,但我得到“没有这样的文件或目录”而不是“找不到命令”
【发布时间】:2026-01-02 05:05:02
【问题描述】:

我被这个问题难住了,这可能与 winpdb 无关。为了让 winpdb 升级到当前版本,我安装和卸载了好几次。它现在可以工作,但我无法使用命令“winpdb”启动它,即使它在我的路径上。我得到“没有这样的文件或目录”而不是“找不到命令”即使我是它所在的目录。但是,当我在该目录中时,我可以使用./winpdb 运行它。这个 [https://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-file-exists] 是我得到的最接近答案的答案,这表明它与断开的符号链接有关。但是 ls -l 没有出现这样的链接。

这里有一个纲要。我在cd 上使用了复制/粘贴到完整路径名,所以这不仅仅是一个错字。它在最后运行,当我退出它时,我得到下一个命令提示符:

localhost:~ nat$ winpdb
-bash: /usr/local/bin/winpdb: No such file or directory
localhost:~ nat$ nonexistentcommand
-bash: nonexistentcommand: command not found
localhost:~ nat$ cd /usr/local/bin/
localhost:bin nat$ ls -l winpdb
ls: winpdb: No such file or directory
localhost:bin nat$ echo $PATH
/usr/local/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/Users/nat/Library/android-sdk-mac_x86-1.5_r3/tools
localhost:bin nat$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
localhost:bin nat$ ls -l winpdb
-rwxr-xr-x  1 root  admin  2175 Dec 31 23:54 winpdb
localhost:bin nat$ winpdb
-bash: /usr/local/bin/winpdb: No such file or directory
localhost:bin nat$ ./winpdb
localhost:bin nat$ 

任何帮助表示赞赏!

【问题讨论】:

  • /Library/Frameworks/Python.framework/Versions/2.7/bin/winpdb 是 shell 脚本包装器还是调用试图调用/打开 /usr/local/bin/winpdb 的 shell 脚本?
  • 谢谢!假设“shell 脚本包装器”听起来像,是的,它是 Python 代码的包装器,并以 #!/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python 行开头。它似乎没有提到/usr/local/bin/winpdb,我假设如果是这样,./winpdb 将不起作用。

标签: bash unix command-line winpdb


【解决方案1】:

尝试新的 shell 会话和/或尝试hash -r,然后运行命令。

您的 shell 可能正在“记住”它找到的之前看到的 /usr/local/bin/winpdb 路径。

\winpdb 和/或command winpdb 也可能有效(作为避免哈希位置查找的临时方法),但我不确定。

【讨论】:

    最近更新 更多