GNU/Linux >> Belajar Linux >  >> Linux

Mengapa tautan simbolik saya tidak berfungsi?

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:

  1. Berikan jalur lengkapnya

    ln -s ~/actual/file-1.txt ~/actual/file-2.txt ~/proper
    
  2. 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 .


Linux
  1. Mengapa Nullglob Tidak Default?

  2. Ubah Hardlink Menjadi Tautan Simbolik?

  3. Tautan Simbolik Tidak Berfungsi Seperti yang Diharapkan Saat Mengubah Pengguna?

  1. Variabel lingkungan dalam tautan simbolik

  2. Bagaimana cara memindahkan tautan simbolik relatif?

  3. kesalahan ldconfig:bukan tautan simbolik

  1. LD_LIBRARY_PATH sepertinya tidak berfungsi

  2. Mengapa `\d` tidak berfungsi dalam ekspresi reguler di sed?

  3. Mengapa tautan simbolis saya membuat file dan bukan folder?