【问题标题】:fish shell, $PATH and symlinked binary鱼壳、$PATH 和符号链接的二进制文件
【发布时间】:2016-07-18 11:16:30
【问题描述】:

根据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

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

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
  • 这会导致同样的错误。
  • 啊,我知道错误是什么了。指令中有一个错误——~/Applications 前面做什么?通过复制粘贴,我创建了一个无符号链接。

标签: shell path symlink fish


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多