2016-02-05 104 views
0

我有一個部署與capistrano的rails 4應用程序。在我的輸出中有一堆運行的命令,我根本不理解。我想弄清楚爲什麼有些失敗,但真正的問題是我不知道他們在做什麼。capistrano輸出 - 什麼是[-L ...]命令?

下面是一個典型的例子:

DEBUG [8020adb4] Running /usr/bin/env [ -L ~/apps/spo/releases/20160205133156/public/assets ] as [email protected] 
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

方括號是test命令的替代語法。

運行哪個測試取決於您給出的表達式,在這種情況下,它會檢查~/apps/spo/releases/20160205133156/public/assets是否存在並且是符號鏈接。

man test

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

非常感謝你爲這個,我試圖谷歌,和 - 必須已經擺脫了我的搜索!我從來沒有想到,一個命令可以從這樣一個破折號開始。我假設-L是env命令的一個選項或其他東西。 – blueRidgeCoder

+0

我已經更新了答案,提供了有關方括號的更多信息,'-L'確實是一個選項。 –