Tautan simbolis

**Tautan simbolis** (), dalam ilmu komputer merujuk kepada sebuah jenis berkas yang bertindak sebagai acuan ke berkas lainnya atau direktori. Beberapa sistem operasi yang menyerupai sistem operasi UNIX sering memiliki fitur tautan simbolis.

Tidak seperti tautan keras (), tautan simbolis tidak secara langsung menunjuk kepada data, tetapi hanya mengandung jalur simbolis yang digunakan oleh sistem operasi untuk mengenali sebuah tautan keras atau tautan simbolis lainnya. Sehingga ketika seorang pengguna membuat sebuah tautan simbolis, berkas yang dirujuknya tetap tidak terpengaruh oleh apa yang dilakukan pengguna. Berbeda dengan tautan keras yang jika memang pengguna membuangnya, maka hal tersebut dapat berakibat pada penghapusan berkas tersebut jika memang berkas tersebut tidak memiliki tautan keras lagi.

Beberapa sistem dapat menggunakan tautan simbolis untuk merujuk kepada berkas-berkas meskipun berada di dalam sistem berkas yang dikaitkan ke lokasi yang berbeda dengan sistem berkas yang sekarang digunakan (contoh `/dev/hda1` merujuk ke `/dev/hda2`). Bandingkan dengan tautan keras, yang hanya dapat digunakan dalam cakupan sistem berkas fisik yang sama (contoh tautan keras pada `/dev/hda1` harus terdapat pada `/dev/hda1` juga).

Dalam konsep tautan simbolis, istilah "*orphan link*" atau "yatim" digunakan untuk merujuk kepada tautan simbolis yang tidak memiliki target. Tautan simbolis juga beroperasi secara transparan, sehingga implementasinya tidak terlihat oleh aplikasi atau pengguna. Ketika sebuah program membuka, membaca, atau menulisi sebuah tautan simbolis, sistem operasi akan mengalihkan apa yang dilakukan oleh pengguna kepada target tautan simbolis tersebut secara otomatis. Akan tetapi, memang terdapat beberapa fungsi yang mampu mendeteksi keberadaan tautan simbolis, sehingga aplikasi dapat menemukannya dan memanipulasinya.

Pengguna harus sangat berhati-hati dalam merawat tautan simbolis. Tidak seperti tautan keras, jika target tautan simbolik terhapus, maka data akan hilang dan semua pranala ke berkas atau direktori tersebut menjadi orphan link. Akan tetapi, menghapus sebuah *symbolic link* tidak memiliki pengaruh terhadap target.

## Contoh penggunaan
Untuk membuat sebuah tautan simbolis dalam sistem operasi UNIX, gunakan perintah di bawah ini dari ''command-line'' UNIX:

 ln -s Sumber_berkas Berkas_baru

Ganti `Sumber_berkas` dengan nama berkas atau direktori yang telah ada yang hendak kita buat tautan simbolis terhadapnya (berkas ini dapat berada di mana saja, melewati batas sistem berkas fisik). Ganti `Berkas_baru` dengan nama tautan simbolis yang hendak dibuat. Perintah `ln` akan membuatkan tautan simbolis. Setelah kita membuat tautan simbolis dengan perintah di atas, kita dapat melakukan beberapa operasi seperti membaca, menulisi, atau mengeksekusi `Berkas_baru`, seolah-olah kita sedang bekerja dengan `Sumber_berkas`. Kita juga dapat menggunakan perintah-perintah manajemen berkas (seperti `cp`, `rm` atau perintah lainnya) terhadap tautan simbolis.

## Tempat penyimpanan tautan simbolis
Implementasi awal dari tautan simbolis cenderung menyimpan informasi tautan simbolis di dalam blok disk standar, seperti halnya berkas biasa. Berkas tersebut mengandung referensi tekstual kepada target yang dituju oleh pranala tersebut, dan sebuah indikator bahwa ia adalah tautan simbolis.

Penggunaan cara seperti ini ternyata tidak cukup bagus dan memiliki kinerja yang lambat, dan juga terjadi banyak ruangan disk yang terbuang percuma dalam sistem-sistem yang kecil. Akhirnya sebuah inovasi yang dikenal sebagai ***fast symlink*** mengizinkan penyimpanan teks pranala di dalam struktur data standar yang juga digunakan untuk menyimpan informasi berkas di dalam disk (*index node* atau *[[inode]]*). Ruangan ini pada umumnya bertindak sebagai tempat penyimpanan rantai blok-blok disk yang membentuk sebuah berkas (berukuran 60 bita di dalam Unix File System). Dengan begitu, pengguna pun dapat merujuk kepada tautan simbolis secara lebih cepat. Sistem-sistem dengan *fast symlink* akan menggunakan metode yang lama jika nama path dan nama berkas yang disimpan di dalam symlink melebihi ruangan yang tersedia di dalam inode, atau untuk kompatibilitas ke belakang dengan sistem operasi versi lama atau sistem operasi lainnya. Penggunaan cara pertama yang disebutkan di atas telah dikenal menjadi istilah ***Slow Symlink***.

Meskipun menyimpan nilai pranala di dalam inode menghemat blok disk dan mengurangi pembacaan hard disk, sistem operasi masih harus menerjemahkan informasi nama path yang terkandung di dalam link, yang selalu membutuhkan pembacaan inode tambahan dan umumnya membutuhkan pembacaan terhadap banyak direktori, yang kemudian memproses daftar berkas dan inode setiap berkas hingga sistem operasi menemukan kecocokan dengan nama path yang dirujuk. Fast symlink akan menunjukkan peningkatan performa yang signifikan hanya ketika sebuah pranala menunjuk ke sebuah berkas di dalam direktori yang sama.