我有一个使用capistrano部署的rails 4应用程序。在我的输出中有一堆运行的命令,我根本不懂。我试图找出其中一些失败的原因,但真正的问题是我根本不知道他们在做什么。
这是一个典型的例子:
DEBUG [8020adb4] Running /usr/bin/env [ -L ~/apps/spo/releases/20160205133156/public/assets ] as spo@dev.platform.spisales.com
DEBUG [8020adb4] Command: [ -L ~/apps/spo/releases/20160205133156/public/assets ]
DEBUG [8020adb4] Finished in 0.013 seconds with exit status 1 (failed).
我知道/ usr / bin / env会运行一个程序,但我不知道这部分试图做什么:
[ -L ~apps/spo/releases/20160205133156/public/assets ]
这样的事情:/usr/bin/env mkdir
很容易理解,它正在运行mkdir。
如果有人能解释这些[ -L ...]
命令正在做什么,我将非常感激!
答案 0 :(得分:1)
方括号是test
命令的替代语法。
运行哪个测试取决于您提供的表达式,在这种情况下,它会检查~/apps/spo/releases/20160205133156/public/assets
是否存在并且是符号链接。
来自man test
:
-L FILE
FILE exists and is a symbolic link (same as -h)