シンボリックリンクは、相対パスの保存されたショートカットです。
~/foo➤ ln -s . ~/bar/foo
~/foo➤ ls -l ~/bar
total 8
lrwxr-xr-x 1 me me 1B 15 May 14:38 foo -> .
ファイル~/bar/foo
は、bar
sの現在のディレクトリ、つまりそれ自体へのシンボリックリンクです。
別のディレクトリに、その時点でいるディレクトリへのシンボリックリンクを作成したい場合はどうすればよいですか?したがって、上記の例では、私は~/foo
にいて、~/bar/foo
へのシンボリックリンクとして~/foo
を作成したいと思います。もちろん、私の現在のディレクトリは5文字よりかなり長く、入力がそれほど簡単ではないかもしれません。
私はタイプと言うでしょう
ln -s $PWD ~/bar/
または
ln -s `pwd` ~/bar/
あなたも使うことができます
ln -s $PWD ~/bar/
しかし、あなたはそれを知っていたと思います、そしてそれはあなたが世話をしているものではありません。それで、あなたの目標が何であるかを説明するためにあなたの質問を更新していただけませんか?
パスにスペースが含まれている場合は、次を使用することをお勧めします。
ln -s "$PWD" ~/bar/
絶対に:
ln -s "$(readlink -f .)" ~/bar
(スクリプトの一般性に適している可能性があります)または単に
ln -s ~/foo ~/bar
比較的:
ln -s ../foo ~/bar
タブ補完は入力に役立ちます。
Grawityのコメントと http://lists.gnu.org/archive/html/coreutils-announce/2012-03/msg00000.html から:
*リリース8.16(2012-03-26)での注目すべき変更[安定]
.。
ln
は--relative
オプションを受け入れるようになり、ターゲットの指定方法に関係なく、ターゲットへの相対的なシンボリックリンクを生成します。
したがって、このバージョンでは:
ln -s --relative . ~/bar
動作するはずです(実際には、最初の例と同じですが、--relative
スイッチが追加されています)。