【问题标题】:Why isn't symlink in application being found in $PATH in OSX?为什么在 OSX 的 $PATH 中找不到应用程序中的符号链接?
【发布时间】:2016-05-30 14:59:39
【问题描述】:

我一直对 OSX 环境变量有点不稳定,但我认为,只要 /usr/local/bin 在我的 $PATH 中,该文件夹中的所有内容都可以用作 shell 中的命令。

这似乎没有发生。 $ echo $PATH 给我:

/Users/[用户名]/.nvm/versions/node/v0.12.7/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin: /sbin

我的/usr/local/bin 文件夹包含指向应用程序的符号链接;我们称之为some-application。但是在 shell 中输入 some-application 会产生经典的 bash 错误:

-bash: some-application: 找不到命令

【问题讨论】:

  • 脚本文件上是否设置了可执行标志?
  • @glglgl 权限是lrwxr-xr-x 1 root wheel 64 18 Feb 12:05 some-application(所以是的)
  • @shenen 这些是符号链接上的标志还是脚本文件上的标志?
  • @glglgl 感谢您的帮助,但我找到了答案。这不是一个可执行的问题。见答案。

标签: macos bash environment-variables symlink .bash-profile


【解决方案1】:

这是我的一个简单错误。我使用错误的链接位置创建了符号链接:

$ ln -s /some/non-existent/location/some-application /usr/local/bin/some-application

创建此“链接”没有错误。符号链接名称是 bash 错误中使用的名称,掩盖了它找不到原始位置而不是链接的事实。

对我来说,我要么期望在创建链接时引发错误,要么至少让 bash 详细说明哪个路径无法解析。像这样的:

-bash: /some/non-existent/location/some-application: 没有这样的文件或目录

哦,好吧。结案。

附言

任何关于它为什么会以这种方式运行的信息都可能对我自己和其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多