为什么在 OSX 的 $PATH 中找不到应用程序中的符号链接?

Why isn't symlink in application being found in $PATH in OSX?

我一直对 OSX 环境变量有些犹豫,但我认为,只要 /usr/local/bin 在我的 $PATH 中,该文件夹中的所有内容可用作 shell.

中的命令

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

/Users/[username]/.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: command not found

这是我的一个简单错误。我使用错误的 link 位置创建了 symlink:

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

创建这个 'link' 没有错误。 symlink 名称是 bash 错误中使用的名称,掩盖了它无法找到原始位置的事实,而不是 link.

对我来说,我本来希望在创建 link 时会抛出错误,或者至少 bash 会详细说明无法解析的路径。像这样:

-bash: /some/non-existent/location/some-application: No such file or directory

哦,好吧。案件结案。

P.S

任何关于它为何如此行为的线索都可能对我自己和其他人有所帮助。