web-dev-qa-db-ja.com

パス全体を入力せずに、絶対パスとして現在のフォルダへのシンボリックリンク

シンボリックリンクは、相対パスの保存されたショートカットです。

~/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は、barsの現在のディレクトリ、つまりそれ自体へのシンボリックリンクです。

別のディレクトリに、その時点でいるディレクトリへのシンボリックリンクを作成したい場合はどうすればよいですか?したがって、上記の例では、私は~/fooにいて、~/bar/fooへのシンボリックリンクとして~/fooを作成したいと思います。もちろん、私の現在のディレクトリは5文字よりかなり長く、入力がそれほど簡単ではないかもしれません。

10
Gareth

私はタイプと言うでしょう

ln -s $PWD ~/bar/

または

ln -s `pwd` ~/bar/

あなたも使うことができます

ln -s $PWD ~/bar/

しかし、あなたはそれを知っていたと思います、そしてそれはあなたが世話をしているものではありません。それで、あなたの目標が何であるかを説明するためにあなたの質問を更新していただけませんか?

パスにスペースが含まれている場合は、次を使用することをお勧めします。

ln -s "$PWD" ~/bar/
13
Huygens

絶対に:

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スイッチが追加されています)。

4