我如何 link 一个 ruby 脚本到 /usr/local/bin 以便无论何时都能找到它

How do I link a ruby script to /usr/local/bin so that whenever can find it

我制作了一个脚本,我需要 whenever 到 运行 通过 cron 每隔 30.minutes

将它与 ln -s scruffy.rb /usr/local/bin 链接起来没问题,但随后会发生这种情况:

gilani@raspberrypi:~ $ /usr/local/bin/scruffy.rb
-bash: /usr/local/bin/scruffy.rb: Too many levels of symbolic links

在哪里以及如何设置符号 link 以便 cron 可以 运行 我的脚本?

试试这个:

ln -s /absolute/path/to/scruffy.rb /usr/local/bin
      ^^^^^^^^^^^^^^^^^^ adjust this path

您的原始命令生成名为 /usr/local/bin/scruffy.rb 的符号 link,目标设置为 scruffy.rb。问题是 symlink 目标中的相对路径被解释为相对于包含 symlink 的目录,而不是相对于您 运行 来自的 ln 命令的路径.所以现在 /usr/local/bin/scruffy.rb 是一个 symlink 本身,因为相对路径 scruffy.rb 解释为相对于 /usr/local/bin 给你返回 symlink 本身。所以你有一个 link 指向它自己,这会创建一个无限循环。

编辑:如果您不想键入 scruffy.rb 的完整绝对路径并且您从它包含的目录执行 ln它,你可以简单地做:

ln -s "$PWD/scruffy.rb" /usr/local/bin

正如 mudasobwa 指出的那样。