符号链接:没有这样的文件或目录

符号链接:没有这样的文件或目录

我创建了一个从“/opt/bladir/bla”处的文件到“bla”的符号链接。因此“bla”现在位于“/usr/bin/bla”中。但如果我想在终端上调用“bla”,就会出现没有此文件或目录的错误。我查看了“/usr/bin/bla”,发现文件在“/opt/bladir/bla”处正确链接。

可能存在什么错误?

PS 这里是我的终端“入口”: sudo ln -s /opt/bladir/bla bla

谢谢!

€:问题解决了。根据功能列表,12.04 应该具有多架构支持……“应该”。我从 synaptic 获得了 ia32-libs,现在程序运行正常。看起来,我的符号链接是正确的。

感谢您的所有回答!

答案1

编辑:下面的解决方案不起作用。显然符号链接已损坏,因为file -L无法打开符号链接 /usr/bin/bla。在这种情况下,请执行以下操作:

sudo ln -sf /opt/bladir/bla /usr/bin/bla

使用完整路径(-f 表示强制覆盖前一个符号链接(如果有的话)。

嗯。我认为程序“bla”可能正在寻找安装在 /opt/bladir 中的东西,但找不到它们。例如,它可以是 Java 可执行文件的 shell 脚本包装器,其路径相对于当前目录:但您的当前目录是 /usr/bin/,而不是 /opt/bladir/。

如果以下工作

file -L /usr/bin/bla

...那么就是确实您的符号链接没有问题。

检查“bla”是否是可以修改的 shell 脚本,查看里面的内容——也许您会发现问题。将 /opt/bladir 添加到 PATH 中可能是一个更好的解决方案。

答案2

看来你遇到的问题和我不一样,因为你说,

“我查看了“/usr/bin/bla”,发现文件正确链接到“/opt/bladir/bla”。

但是,对于其他来这里的人,我想通过符号链接将 ~/julia-1.5.3/bin/julia 放在 PATH 上,所以我基本上这样做了,cd /home/username/然后sudo ln -s julia-1.5.3/bin/julia /usr/local/bin/julia。当我输入时julia,它说bash: /usr/local/bin/julia: No such file or directory。当我这样做时ls -all /usr/local/bin,我发现了问题;它链接到悬空的相对目录:julia -> julia-1.5.3/bin/julia

无论如何,我只需要用绝对路径重做它,它就成功了: sudo ln -sf /home/username/julia-1.5.3/bin/julia /usr/local/bin/julia

答案3

这个问题不是这种情况,但发生此错误的另一种情况是,如果其中一个目录中有空格并且没有用引号引起来。例如:

ln -s my home/username/myfolder/a file.txt file.txt

会导致错误。但是

ln -s my "home/username/myfolder/a file.txt" file.txt

将不会。

答案4

如果您没有启用执行位,通常会显示此类错误消息。请检查主文件以及链接是否被授予执行权限。

我怀疑你的系统/opt可能是从单独的分区挂载的,而且没有使用exec挂载选项挂载

相关内容