pwdを基準にしてみましたが、うまくいきません。
現在のパスワードは、宛先パスと元のパス(リンクを生成する必要があるパス)とは異なります。
ホームディレクトリがわからないため、ホームディレクトリに関連付けられているパス名は使用できません。絶対パス名は必要ありません。
相対パス名を使用してソフトリンクを作成するには?
ベストアンサー1
相対シンボリックリンクは親ディレクトリに相対的であり、プロセスの現在のディレクトリやユーザーのホームディレクトリとは関係ありません。
たとえば、行へ/some/dir/link
のシンボリックリンクの場合、現在またはホームディレクトリが何であるかに関係なく(それ自体がシンボリックリンクではない場合)への../foo/bar
シンボリックリンクです。/some/dir/../foo/bar
/some/foo/bar
/some/dir
bin/ls
現在のディレクトリに関連付けられているファイル(現在のディレクトリ内のファイルなど/home/stephane
)への新しいシンボリックリンクを作成するには、次のようにします(POSIXに似たシェルまたはからfish
)。
ln -s -- "$PWD/bin/ls" /some/dir/link
これにより(への)絶対シンボリックリンクが生成されます/home/stephane/bin/ls
。相対シンボリックリンクを作成するには、次のものが必要です。
ln -s ../../home/stephane/bin/ls /some/dir/link
(それ自体/some
が/some/dir
シンボリックリンクではないと仮定)
GNUには、このパスを計算するのに役立つオプションがln
あります-r
。
ln -rs bin/ls /some/dir/link
(これを行うと同じシンボリックリンクが生成されます../../home/stephane/bin/ls
)。