fish shell、$PATH 和符号链接二进制文件

fish shell, $PATH and symlinked binary

根据 these instructions 我将二进制链接到 /usr/bin 如下:

sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin

现在符号链接存在,/usr/bin 显然在 $PATH:

   cls@clsmba > ls -lah /usr/bin/ebook-convert
    lrwxr-xr-x  1 root  wheel    64B Jul 18 13:00 /usr/bin/ebook-convert -> /Users/cls/Applications/calibre.app/Contents/MacOS/ebook-convert

然而鱼shell并不知道它的存在:

cls@clsmba > ebook-convert
fish: Unknown command 'ebook-convert'

cls@clsmba > ./usr/bin/ebook-convert
fish: Unknown command './usr/bin/ebook-convert'

我做错了什么?

您创建了 /usr/bin/ebook-convert 作为符号链接。然后你尝试 运行 ./usr/bin/ebook-convert (注意前导点)除非你的 cwd 是 / (即根目录),否则它将不起作用。当然,主要问题是您可能没有 /Users/cls/Applications 目录;或者,如果您这样做,它不包含 calibre.app。你可能想要 /Applications 而不是 ~/Applications.