Cara Mencari Symbolic Link di Linux

Pada seri tutorial kali ini, aku akan membahas tentang cara mencari semua symlink yang berada pada direktori tertentu dan cara mencari symlink yang telah rusak dengan perintah find.

Untuk mencari semua symlink yang berada pada sistem operasi Linux, jalankan perintah find seperti pada contoh berikut:

$ find ~ -type l

Silakan gantilah ~ dengan direktori di mana symlink berada.

Setelah symlink sudah ditemukan, kalian dapat menggunakan perintah berikut ini untuk mengetahui informasi mengenai symlink tersebut.

$ ls -l ~/.local/bin/p

Jika perintah di atas dijalankan, hasilnya kira-kira seperti ini:

lrwxrwxrwx 1 aditya aditya 13 Jun 28 00:26 /home/aditya/.local/bin/p -> /usr/bin/ping

Dari hasil di atas dapat ditarik kesimpulan sebagai berikut:

  • pada kolom lrwxrwxrwx, arti l pada kolom tersebut adalah file berjenis symlink,
  • pada kolom /home/aditya/.local/bin/p -> /usr/bin/ping, artinya file symlink /home/aditya/.local/bin/p mengarah ke file /usr/bin/ping.

Jadi, ketika file symlink ~/.local/bin/p dijalankan, hasilnya akan sama ketika kalian menjalankan program yang ping yang terletak pada direktori /usr/bin/ping, karena pada dasarnya file ~/.local/bin/p mengarah ke file /usr/bin/ping.

$ ~/.local/bin/p google.com -w 1
PING google.com (74.125.68.113) 56(84) bytes of data.

--- google.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
$ /usr/bin/ping google.com -w 1
PING google.com (74.125.68.113) 56(84) bytes of data.

--- google.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

Symlink yang telah rusak atau symlink yang mengarah pada file yang sudah tidak ada, ini aman untuk dihapus karena memang file tersebut tidak berfungsi lagi.

Untuk mencari symlink yang telah rusak, gunakan opsi -xtype seperti pada contoh berikut:

$ find . -xtype l

Arti simbol . pada perintah di atas adalah untuk mencari symlink yang telah rusak pada direktori kalian berada saat ini.

Setelah symlink yang telah rusak ditemukan, kalian dapat menghapus symlink-symlink tersebut satu per satu.

Atau dapat menjalankan perintah berikut ini untuk menghapus semua symlink yang telah rusak secara otomatis.

$ find . -xtype l -delete