Symbolic link, juga dikenal sebagai symlink, adalah jenis file khusus yang menunjuk ke file atau direktori lain. Symlink seperti short cut atau pintasan di Windows. Symlink dapat menunjuk ke file atau direktori pada file sistem atau partisi yang sama atau berbeda.

Dalam panduan ini, kami akan menunjukkan kepada Anda cara menghapus Symbolic link di sistem Linux/UNIX menggunakan rm, unlink, dan find.

Sebelum Memulai

Untuk menghapus symlink, Anda harus memiliki izin write pada direktori yang berisi symlink. Jika tidak, Anda akan mendapatkan pesan error “Operation not permitted”.

Saat Anda menghapus symlink, file yang ditunjuknya tidak terpengaruh (tidak ikut terhapus).

Gunakan perintah ls -l untuk memeriksa apakah file yang diberikan adalah symbolic link, dan untuk menemukan file atau direktori yang ditunjuk symbolic link.

ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16  2019 /usr/bin/python -> python2.7

Karakter pertama “l“, menunjukkan bahwa file tersebut adalah symlink. Simbol “->” menunjukkan file yang ditunjuk symlink.

Hapus Symbolic Links dengan rm

Perintah rm akan menghapus file dan direktori yang diberikan. Untuk menghapus symlink, aktifkan perintah rm diikuti dengan symlink sebagai argumen:

rm nama_symlink

Jika berhasil, perintah akan keluar tanpa menampilkan output apapun.

Dengan rm Anda dapat menghapus lebih dari satu symbolic link sekaligus. Untuk melakukan itu, berikan nama-nama symlink sebagai argumen, dipisahkan dengan spasi:

rm symlink1 symlink2

Untuk menampilkan peringatan sebelum menghapus symlink, gunakan opsi -i:

rm -i nama_symlink

Untuk mengkonfirmasi ketik y dan tekan Enter.

rm: remove symbolic link 'nama_symlink'?

Jika symbolic link menunjuk ke direktori, jangan tambahkan / atau trailing slash di akhir nama. Jika tidak, Anda akan mendapatkan error :

rm symlink_ke_photo_mantan/
rm: cannot remove 'symlink_ke_photo_mantan/': Is a directory

Jika nama argumen berakhir dengan /, perintah rm mengasumsikan bahwa file tersebut adalah direktori. Kesalahan terjadi karena perintah rm digunakan tanpa opsi -d atau -r, sehingga tidak dapat menghapus direktori.

Agar aman, jangan gunakan opsi -r saat menghapus symbolic link dengan rm. Misalnya, jika Anda mengetik:

rm -f symlink_ke_photo_mantan/

Maka Isi dari direktori photo_mantan akan dihapus.

Hapus Symbolic Links dengan Perintah unlink

Perintah unlink akan menghapus file yang diberikan. Tidak seperti rm, unlink hanya menerima satu argumen.

Untuk menghapus symbolic link, jalankan perintah unlink  diikuti dengan nama symlink sebagai argumen:

unlink nama_symlink

Jika perintah dijalankan dengan sukses, maka tidak menampilkan output.

Jangan tambahkan / atau trailing slash di akhir nama symlink karena unlink tidak dapat menghapus direktori.

Temukan dan Hapus Symbolic Links yang Rusak

Jika Anda menghapus atau memindahkan file sumber ke lokasi yang berbeda, file symbolic akan tetap ada dan merujuk ke lokasi yang tidak ada (rusak).

Untuk menemukan semua symbolic links yang rusak di bawah direktori yang diberikan, jalankan perintah find berikut:

find /path/ke/direktori -xtype l
/path/ke/direktori/symlink1
/path/ke/direktori/subdir/symlink2

Perintah akan mencantumkan semua links yang rusak di bawah direktori dan subdirektori-nya.

Jika Anda ingin mengecualikan symlink yang terkandung dalam subdirektori, gunakan opsi -maxdepth 1 :

find /path/ke/direktori -maxdepth 1 -xtype l
/path/ke/direktori/symlink1

Setelah Anda menemukan symlink yang rusak, Anda dapat menghapusnya secara manual dengan rm atau unlink atau menggunakan opsi -delete dari perintah find:

find /path/ke/direktori -xtype l -delete

Kesimpulan

Untuk menghapus symbolic link, gunakan perintah rm atau unlink diikuti dengan nama symlink sebagai argumen. Saat menghapus symbolic link yang menunjuk ke suatu direktori, jangan tambahkan trailing slash atau garis miring ( / ) pada nama symlink.