capistrano输出 - 什么是[-L ...]命令?

时间:2016-02-05 15:52:11

标签: ruby-on-rails capistrano

我有一个使用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 ...]命令正在做什么,我将非常感激!

1 个答案:

答案 0 :(得分:1)

方括号是test命令的替代语法。

运行哪个测试取决于您提供的表达式,在这种情况下,它会检查~/apps/spo/releases/20160205133156/public/assets是否存在并且是符号链接。

来自man test

 -L FILE
              FILE exists and is a symbolic link (same as -h)