Link simbolik di Linux adalah fitur fantastis, tetapi mereka dapat menjadi rusak dan meninggalkan menunjuk pada apa-apa. Berikut adalah cara untuk menemukan link simbolik rusak, meninjau mereka, dan menghapusnya dari sistem Anda jika Anda perlu.
Link simbolik 101
link simbolik , Juga disebut “link lunak” dan “symlink,” adalah bentuk shortcut yang bisa mengarah ke file dan direktori. Sebuah symlink terlihat seperti file biasa atau direktori di jendela file manager. Hal ini juga muncul sebagai entri dalam file listing di jendela terminal. File atau direktori dimana poin symlink bisa berada di mana saja di pohon file sistem.
Sebagai contoh, katakanlah Anda memiliki symlink di direktori home Anda disebut “dave-link” yang menunjuk ke sebuah file yang bernama “text-file.txt” yang terletak di tempat lain di pohon file sistem. Perintah Anda gunakan pada symlink secara otomatis diterapkan ke file yang menunjuk. Jika Anda mencoba untuk menggunakan
kucing
atau
lebih sedikit
pada symlink, Anda akan benar-benar melihat isi dari “text-file.txt” file.
Sebuah instalasi Linux standar berisi banyak symlink. Bahkan jika Anda tidak membuat diri Anda apapun, sistem operasi menggunakan mereka. rutinitas instalasi aplikasi sering menggunakan symlink untuk menunjuk ke file executable. Ketika perangkat lunak diperbarui, file biner diganti dengan versi baru, dan semua symlink terus bekerja seperti sebelumnya, selama nama baru file adalah sama dengan yang lama.
Kita dapat dengan mudah melihat beberapa symlink dengan menggunakan
ls.
di direktori root. Beberapa entri ditampilkan dalam warna yang berbeda-on kami
Ubuntu 20.10
mesin uji, mereka ditampilkan dalam biru muda.
Kami mengetik hal berikut:
ls /
Kita bisa melihat lebih dalam dengan menggunakan
-l.
(Listing lama) pilihan. Kami ketik perintah berikut untuk melihat semua “lib” entri dan single “bin” entri:
ls -l / lib * / bin
Pada awal setiap baris adalah “l”, yang menunjukkan item adalah sebuah symlink. Teks setelah “- & gt;” menunjukkan apa symlink yang menunjuk. Dalam contoh kita, target semua direktori.
Izin terdaftar sebagai membaca, menulis, dan mengeksekusi bagi pemilik, grup, dan lain-lain. Ini adalah entri palsu default. Mereka tidak mencerminkan hak akses yang sebenarnya pada objek di mana symlink titik. Ini hak akses pada file target atau direktori yang diutamakan dan dihormati oleh sistem file.
rusak symlink
Sebuah symlink rusak (atau dibiarkan tergantung) ketika file di mana ia menunjuk dihapus atau dipindahkan ke lokasi lain. Jika sebuah aplikasi rutin instalasi tidak bekerja dengan benar, atau terganggu sebelum selesai, Anda mungkin pergi dengan symlink rusak.
Jika seseorang secara manual menghapus file tanpa mengetahui symlink titik untuk itu, mereka symlink tidak akan berfungsi lagi. Mereka akan menjadi seperti rambu-rambu jalan yang menunjuk ke sebuah kota yang telah dibuldoser.
Kita bisa dengan mudah melihat perilaku ini menggunakan symlink disebut “hello” di direktori saat ini. Kita ketik berikut ini, menggunakan
ls.
untuk melihatnya:
ls -l
Menunjuk ke sebuah program yang disebut “HTG” di direktori yang disebut “bin.” Jika kita “menjalankan” symlink, dijalankan program bagi kita:
./ halo
Kita sekarang dapat memeriksa apakah ini adalah apa yang terjadi dengan menjalankan program secara langsung:
../ bin / HTG
Seperti yang diharapkan, kami mendapatkan respon yang sama. Mari kita menghapus file program:
rm ../bin/htg
Sekarang, ketika kita melihat symlink, kita melihat itu tercantum dalam merah karena Linux tahu itu rusak. Ia juga memberitahu kita apa dulu titik, sehingga kita dapat mengganti file, mengkompilasi ulang program, atau melakukan apapun yang diperlukan untuk memperbaiki symlink.
Perhatikan bahwa jika kita mencoba untuk menjalankan symlink, kesalahan kita mendapatkan referensi nama symlink, bukan nama program yang symlink poin.
Kami mengetik hal berikut:
./ halo
Menemukan Patah Symlink
Kebanyakan versi modern
Temukan
punya
xtype
(Tipe diperpanjang) pilihan,
yang menyederhanakan menemukan symlink yang rusak
. Kami akan menggunakan
l.
Bendera dengan
xtype.
, untuk mengatakannya untuk mencari tautan. Menggunakan
Temukan
dan
xtype.
sebagai berikut, tanpa yang lain
Tipe
Bendera, Forces.
xtype.
Untuk mengembalikan tautan yang rusak:
Temukan. -XTYPE L
Menjalankan perintah dalam direktori home test kami menemukan beberapa symlink yang rusak. Perhatikan bahwa pencarian bersifat rekursif secara default, jadi ia mencari semua subdirektori secara otomatis.
Simlink "Halo" yang kami buka sengaja terdaftar, seperti yang kami harapkan. Salah satu symlink lainnya terkait dengan browser Firefox, dan sisanya dikaitkan dengan terkunci.
Jika kita menyalakan output
toilet
dengan
-l.
(Garis) Opsi, kita dapat menghitung baris, yang sama dengan menghitung symlink yang rusak.
Kami mengetik hal berikut:
Temukan. -XTYPE L | WC -L
Kami diberitahu bahwa kami memiliki 24 symlink yang rusak menunjukkan apa-apa.
Temukan, ulasan, lalu hapus
Sebelum Anda bergegas dan menghapus semua symlink yang rusak, lihat hasil
Temukan
memerintah. Lihat apakah ada alasan yang sah untuk symlink yang rusak.
Terkadang, symlink mungkin menjadi masalah, daripada file target. Jika symlink salah dibuat, mungkin tidak ada gunanya, tetapi target sebenarnya ada. Membuat kembali symlink akan menjadi perbaikan dalam hal itu.
Dimungkinkan juga bahwa symlink yang tampaknya rusak digunakan sebagai sesuatu yang lain, seperti indikator kunci file atau indikator go / no go lainnya. Firefox melakukan ini; Itulah symlink pertama dalam daftar kami. Firefox tidak digunakan pada mesin uji kami, jadi aman bagi kami untuk menghapusnya.
Mungkin juga target hanya ada secara berkala, dan ini adalah perilaku yang diharapkan (dan diinginkan) dari perangkat lunak tertentu. Mungkin file target disalin dari mesin lain atau cloud, itu melakukan fungsinya, dan kemudian dihapus lagi, hanya untuk diganti dengan program yang berbeda pada siklus berikutnya.
Simlink yang rusak mungkin juga merupakan gejala instalasi perangkat lunak yang gagal. Dalam hal ini, alih-alih menghapus symlink, Anda harus memperbaikinya secara manual atau mengulangi instalasi.
Ketika Anda telah memperbaiki tautan rusak yang perlu Anda simpan, ulangi perintah untuk melakukan pencarian. Simlink tetap kemudian harus absen dari hasil pencarian.
Demi keamanan, yang terbaik adalah membatasi pemindahan symlink Anda ke direktori Anda sendiri. Berhati-hatilah menjalankan perintah-perintah ini sebagai root, atau pada direktori sistem.
Menghapus symlink yang rusak
NS
-Exec.
(Eksekusi) opsi menjalankan perintah pada
Temukan
Hasil Pencarian. Kita akan menggunakan
RM.
untuk menghapus setiap symlink yang rusak. NS
{}
string diganti dengan nama setiap symlink yang rusak karena masing-masing ditemukan oleh
Temukan
.
Kita harus menggunakan titik koma (
;
) untuk menghentikan daftar perintah yang kita inginkan
-Exec.
untuk berlari. Kami akan menggunakan backslash (
\
) untuk "melarikan diri" titik koma, jadi itu diperlakukan sebagai bagian dari
Temukan
perintah, bukan sesuatu
Pesta
harus bertindak.
Kami mengetik hal berikut:
Temukan. -XTYPE L -EXEC RM {} \;
Kami kembali ke prompt perintah tanpa indikasi bahwa apa pun telah terjadi. Untuk memverifikasi tautan yang rusak telah dihapus, kami ulangi perintah untuk mencari mereka, sebagai berikut:
Temukan. -XTYPE L
Tidak ada hasil yang cocok, yang berarti symlink yang rusak telah dihapus.
Ingatlah untuk ditinjau dulu
Sekali lagi, selalu luangkan waktu untuk meninjau daftar symlinks sebelum Anda menjalankan perintah untuk menghapusnya. Anda dapat menghindari menghapus apa pun yang Anda tidak yakin dengan menjalankan perintah untuk menghapusnya di direktori yang sesuai.
Misalnya, di atas, kita dapat menjalankan perintah di direktori ".snap", dan kemudian secara manual menghapus symlink "halo" soliter. Ini akan meninggalkan symlink kunci Firefox tidak tersentuh.