web-dev-qa-db-ja.com

現在のディレクトリへの絶対シンボリックリンクを作成する

パスが非常に長いディレクトリの下にいます。今後のアクセスを早くするために、リンクを張りたいと思います。

私は試した

ln -s . ~/mylink

~/mylinkは実際には~にリンクしています。では、~を絶対パス名に展開して、lnに渡すことはできますか?

12
Tim

シンボリックリンクは、実際に指定したパスを文字列として文字列として保存します¹。つまり、リンク~/mylinkには "."(1文字)が含まれています。リンクにアクセスすると、そのパスは、リンクを作成したときの場所ではなく、リンクの場所を基準にして解釈されます。

代わりに、リンクに必要な実際のパスを保存できます。

ln -s "$(pwd)" ~/mylink

コマンド置換 を使用して pwd (作業ディレクトリ名)の出力をコマンドラインに入力します。 lnは完全なパスを確認し、それをシンボリックリンクに保存します。これにより、正しい場所が示されます。

¹ 多かれ少なかれ。

19
Michael Homer

あなたは使うべきです:

ln -s "$(cd . && pwd)" ~/mylink

または:

ln -s "$(pwd -P)" ~/mylink

現在の作業ディレクトリの正しい結果を取得します。この question のように、作業中に変更できます。

7
cuonglm