2016-08-17 43 views
0

我想遠程獲取符號鏈接的內容,但我很難理解爲什麼不能正常工作。在Linux中遠程讀取符號鏈接

我試過以下example這篇文章。但不適合我。這是我想要做的。

$PATH_LINK=~/some/directory/to/link 
SYMB_LINK=`ssh [email protected]_server.com 'readlink $PATH_LINK'` 

,但我得到$的readlink:缺少操作數

我可以得到它,如果我寫的命令的路徑工作。

SYMB_LINK=`ssh [email protected]_server.com 'readlink path/to/file'` 

我試着運行它沒有-f但仍然給我同樣的問題。

+0

使用DBL-引號' 「的readlink -f $ PATH_LINK」'。如果/ path/to/link有空格,那麼您必須使用單引號和dbl引號的組合來確保/ path/with spaces/to/link作爲1參數傳遞給readlink。祝你好運。 – shellter

+0

謝謝你的避難所!有效! –

回答

1

首先,不要使用~,因爲這可能會在您的shell中使用本地計算機上的用戶的用戶設置而不是遠程計算機進行擴展。

其次,在分配給shell變量時,不應使用左側的$字符。

考慮所有這些意見和它結合在一起,我們得到:

LINK_PATH=/home/david/link 
LINK_TARGET=$(ssh example.com "readlink $LINK_PATH") 
+0

謝謝你的回答!,你是對的,這是左邊$的錯字:/。 –

0

@shelter與解決我的問題就來了。我使用了錯誤的引號。

這是正確的格式:

SYMB_LINK=`ssh [email protected]_server.com "readlink path/to/file"`