可以使用 ls 查看 /usr/local/bin 中的文件,但尝试运行它会导致找不到文件?

可以使用 ls 查看 /usr/local/bin 中的文件,但尝试运行它会导致找不到文件?

我使用的是 OS X,但由于这是终端工作,我认为这是询问的最佳地点。我试图让 Sublime Text 在命令行上工作subl,但没有成功。我跑去ln -s <location of subl file in Applications; not part of $PATH> /usr/local/bin/subl创建一个链接。

当我运行时ls/usr/local/bin我可以subl在目录中看到该链接。

但是当我尝试运行它时,它告诉我Command not found。如果我通过输入绝对路径来尝试它/usr/local/bin/subl,它会告诉我No such file or directory.我不确定如何解决此问题。有想法吗?

的输出readlink /usr/local/bin/subl

/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl

答案1

您的符号链接中有一个额外的反斜杠。实际路径是

/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl

但您创建了一个符号链接

/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl

当您在 shell 中使用符号链接的文本时,反斜杠将被解释为转义字符,因此您可以获得正确的路径。但是您在创建符号链接时以某种方式引用了反斜杠,因此最终在不应该有的地方出现了反斜杠。

修复符号链接:运行

ln -sf /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin

提示:引用现有文件时使用补全。这样你就不会输错名字了。

相关内容