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.