Un collegamento simbolico (in inglesesymbolic link, spesso contratto in symlink ma conosciuto anche come soft link), in informatica, indica un particolare tipo di file che altro non è che un rimando ad un altro file o directory.
Descrizione
Un collegamento simbolico è un file contenente un percorso relativo o assoluto al file o directory a cui fa riferimento; questo permette di creare collegamenti non solo all'interno della stessa partizione, ma anche da un file system ad un altro, offrendo quindi più flessibilità rispetto ad un collegamento fisico. Questa flessibilità si paga con una minore affidabilità: se il file a cui un collegamento simbolico punta viene rimosso o cambiato di nome, il collegamento rimane orfano, venendo a mancare la sua destinazione; un collegamento fisico, invece, puntando direttamente ai dati (il contenuto) del file, è indipendente dal file di destinazione specificato al momento della sua creazione.
È possibile creare collegamenti simbolici ad altri collegamenti simbolici, e così via, con dei limiti nella lunghezza totale della catena che dipendono dal sistema operativo in uso.
Memorizzazione e funzionamento
Un collegamento viene gestito in maniera trasparente da molte delle funzionalità del sistema operativo di accesso ai file, che interpretano una richiesta d'accesso al collegamento come se fosse per il file a cui questo fa riferimento. Naturalmente, sono sempre previste delle funzioni specifiche per operare sui collegamenti simbolici (creazione, riconoscimento, eliminazione).
Quando il sistema operativo accoglie l'accesso ad un collegamento simbolico, legge da questo il nome del file a cui è associato, e opera su quest'ultimo. Questo passaggio intermedio ha un costo, e un collegamento simbolico è sempre più lento di un analogo collegamento fisico (che però non è sempre possibile creare).
Nei sistemi Unix di derivazione BSD è possibile assegnare permessi direttamente anche ai collegamenti simbolici stessi. Negli altri sistemi Unix e Unix-like i permessi di un collegamento simbolico sono pressoché irrilevanti, dal momento che saranno utilizzati quelli del file di destinazione; in questi sistemi un collegamento simbolico viene quindi solitamente rappresentato come avente i permessi 0777 nella notazione ottale o "lrwxrwxrwx" nella notazione simbolica (lettura, scrittura ed esecuzione per tutti, e nessun permesso speciale come sticky, set user ID o set group ID).
Per creare un collegamento simbolico nei sistemi Unix e Unix-like si utilizza il comando ln con opzione -s.
Bibliografia
(EN) symbolic link, in Hargrave's Communications Dictionary, Hoboken, Wiley, 2001.
(EN) Gavin Sherry, Symbolic links, in Australian PC World, 1º novembre 2003.