可执行符号链接导致“找不到命令”

可执行符号链接导致“找不到命令”

我创建了一个符号链接(昨天),如下所示:

sudo ln -s bin/python /usr/bin/prj-python

当我跑步时:

prj-python file.py

我得到:

prj-python: command not found

当我尝试再次创建链接时,我得到:

ln:创建符号链接“/usr/bin/prj-python”:文件存在

为什么会发生这种情况?我的$PATH是:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

答案1

需要检查的事项:

  • 执行一个ls -l /usr/bin/prj-python

如果是这样:

lrwxrwxrwx (...) /usr/bin/prj-python -> bin/python

该文件实际上将在以下位置搜索/usr/bin/bin/python(这就是 xralf 试图说的)。使固定:

rm /usr/bin/prj-python
ln -s /full/path/to/your/python /usr/bin/python-prj

  • 如果您bin/python是 shell 脚本(又名包装脚本),请检查#!-线(有时称为舍邦-line) 在第一行。如果有这样的拼写错误#!/bin/bush会导致未找到错误信息也。

答案2

你忘记了之前的第一个斜杠bin/python。这意味着/usr/bin/prj-python现在指向/usr/bin/bin/python.您希望它准确指向什么?

相关内容