Symlink cenderung menyukai jalur lengkap atau relatif terhadap tautan, jika tidak, mereka sering mencari file-1.txt
secara lokal (anehnya).
Arahkan ke proper
dan jalankan ls -l
dan Anda dapat melihat bahwa symlink sedang mencari actual/file-1.txt
, padahal seharusnya ../actual/file-1.txt
.
Jadi, Anda memiliki dua opsi:
-
Berikan jalur lengkapnya
ln -s ~/actual/file-1.txt ~/actual/file-2.txt ~/proper
-
Arahkan ke folder tempat Anda ingin tautan berada dan tautkan dari sana
cd proper ln -s ../actual/file-1.txt ../actual/file-2.txt ./
Edit :Petunjuk untuk menghemat pengetikan.
Anda bisa melakukan ln -s ~/actual/file-{1,2}.txt ~/proper
Item dalam kurung kurawal diganti dan ditempatkan setelah satu sama lain, membuat perintah
ln -s ~/actual/file-1.txt ~/actual/file-2.txt ~/proper
yang menautkan kedua file ke direktori target. Menghemat beberapa pengetikan utama saat Anda masuk lebih jauh ke dalam shell.
Masalahnya adalah penggunaan jalur relatif. Jika Anda menentukan pembuatan tautan dengan jalur eksplisit penuh, itu berfungsi.
$ ln -s ~/actual/file1.txt ~/actual/file2.txt ~/proper/
$ cat proper/file1.txt
berkas 1
$
Contoh Anda membuat tautan di proper
yang mencari subdirektori bernama aktual di bawah direktori saat ini, bukan induk dari keduanya yang Anda maksudkan.
Tautan simbolik bisa jadi rumit. Intinya, tautan simbolik adalah file yang berisi nama file/nama jalur untuk file lain (dan itu ditandai untuk perlakuan khusus). Jika nama jalur dalam file tautan diawali dengan '/
', kemudian diperlakukan sebagai pathname absolut, dan hal-hal yang cukup mudah. Jika tidak dimulai dengan garis miring, itu diperlakukan sebagai nama jalur relatif — relatif terhadap direktori tempat tautan berada. (Hal ini benar apakah nama mengandung garis miring atau tidak.) Jadi, Anda telah membuat proper/file–1.txt
sebagai tautan ke “actual/file–1.txt
”, dan saat Anda mencoba mengaksesnya, sistem mencoba mengakses proper/actual/file–1.txt
. Anda seharusnya mengatakan
ln –s ../actual/file–1.txt ../actual/file–2.txt proper
Omong-omong, Anda tidak memerlukan touch
perintah. echo "file 1" > actual/file–1.txt
cukup untuk membuat actual/file–1.txt
.