2016-08-17 13 views
0

私はシンボリックリンクの内容を遠隔から取得しようとしていますが、なぜ動作していないのか分かりにくいです。LinuxでリモートでSymlinkを読む

この投稿にある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に空白がある場合は、/ path/spaces/to/linkが1引数としてreadlinkに渡されるように、単一引用符とdbl引用符の組み合わせを使用する必要があります。がんばろう。 – shellter

+0

シェルターありがとう!出来た! –

答えて

1

まず、~を使用しないでください。リモートマシンではなく、ローカルマシン上のユーザーのユーザー設定を使用してシェルによって拡張される可能性があるからです。

第2に、シェル変数に割り当てるときには、左側に$文字を使用しないでください。

すべてこのアドバイスを撮影し、それを一緒に組み合わせることで、我々が得る:

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"` 
関連する問題