我如何 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 指出的那样。
我制作了一个脚本,我需要 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 指出的那样。