Cara termudah untuk menautkan ke direktori saat ini sebagai jalur absolut, tanpa mengetikkan keseluruhan string jalur
ln -s "$(pwd)/foo" ~/bin/foo_link
The target
(pertama) argumen untuk ln -s
perintah bekerja relatif ke lokasi link simbolik ini, tidak direktori Anda saat ini. Ini membantu untuk mengetahui bahwa, pada dasarnya, symlink yang dibuat (argumen kedua) hanya menyimpan teks yang Anda berikan untuk argumen pertama.
Karena itu, jika Anda melakukan hal berikut:
cd some_directory
ln -s foo foo_link
dan kemudian memindahkan tautan itu
mv foo_link ../some_other_directory
ls -l ../some_other_directory
Anda akan melihat bahwa foo_link
mencoba menunjuk ke foo
dalam direktori di mana ia berada. Ini juga berfungsi dengan tautan simbolik yang menunjuk ke jalur relatif. Jika Anda melakukan hal berikut:
ln -s ../foo yet_another_link
dan kemudian pindah yet_another_link
ke direktori lain dan periksa ke mana ia menunjuk, Anda akan melihat bahwa itu selalu menunjuk ke ../foo
. Ini adalah perilaku yang dimaksudkan, karena banyak kali tautan simbolik mungkin menjadi bagian dari struktur direktori yang dapat berada di berbagai jalur absolut.
Dalam kasus Anda, saat Anda membuat tautan dengan mengetik
ln -s foo ~/bin/foo_link
foo_link
hanya memegang tautan foo
, relatif terhadap lokasinya. Menempatkan $(pwd)
di depan nama argumen target hanya menambahkan jalur absolut direktori kerja saat ini, sehingga tautan dibuat dengan target absolut.