I link simbolici (chiamati anche soft link) e gli Hard Link sono una risorsa per accedere a file o directory da qualsiasi posizione. Questo articolo descriverà le differenze tra link simbolici e hard link.
Hard Link
Gli hard link non sono un file contenente il percorso del file originale, ma copie speculari del file originale a cui puntano. Un file e i suoi hard link non sono associati dal nome o dal percorso ma dall’inode che memorizza le informazioni sul file, come la posizione, la data di creazione, le autorizzazioni e altri attributi. Ogni numero di inode è univoco all’interno di un filesystem che impedisce ai collegamenti rigidi di funzionare tra partizioni o sistemi diversi. Hard link non possono essere utilizzati per collegare le directory.
In contrasto con i soft link, i link rigidi contengono le informazioni a cui si collegano, quindi se il file originale viene rimosso è ancora possibile accedere ai suoi dati.
In tutti i sistemi Linux vengono creati sia collegamenti rigidi che simbolici con il comando “ln”. Prima di iniziare a creare un file chiamato LinuxHintFile e una directory chiamata LinuxHintDirectory come mostrato nell’immagine qui sotto:
rmkdir LinuxHintDirectory
ls
root@LinuxHint:/home/linuxhint#
Per creare un collegamento chiamato Link2LHFile il file LinuxHintFile esegui nel terminale:
Dopo la verifica con ls vediamo il collegamento rigido che abbiamo appena creato, se si digita ls -mi vedrai il file’ inode, si può confermare il link che abbiamo appena creato ha lo stesso numero di inode, rispetto al file originale, tipo:
Come abbiamo detto sopra, non siamo in grado di hard link per le directory, né collegamenti ad altri volumi o filesystem, ti link LinuxHintDirectory con un soft link.
È possibile trovare gli hard link all’interno della directory di lavoro mediante l’esecuzione di:
È inoltre possibile trovare i file di inode, per questa esecuzione:
Come vedi ha trovato sia il file originale che il collegamento rigido che condividono lo stesso numero di inode.
Soft Link
In contrasto collegamenti, collegamenti simbolici non sono copie del file originale, che contiene il percorso del file originale, a causa di questo, se il file originale è stato rimosso il soft link o un collegamento simbolico che punta a nessun file diventando un link rotto, o un orfano link, il che significa che se la perdita del file di origine, se si elimina o sposta il link simbolico di perdita di accesso alle informazioni, mentre con il collegamento rigido l’informazione rimane, nonostante il file di origine di rimozione, perché è una completa ed esatta copia di quel file.
Anche a differenza degli hard link i link simbolici non condividono lo stesso inode con il file originale, ecco perché i link simbolici possono attraversare volumi e filesystem mentre gli hard link non possono. I link simbolici possono essere usati per collegare le directory mentre con gli hard link non è possibile.
I collegamenti simbolici vengono creati anche con il programma ln, ma affinché il collegamento sia simbolico / soft dobbiamo specificare il parametro-s, per creare un collegamento simbolico alla directory LinuxHintDirectory chiamata LHDLink run:
E poi esegui ‘ls -i’ a di controllo è stato creato correttamente:
Come possiamo vedere anche in questo caso il collegamento simbolico è stato creato, ma ha un diverso numero di inode rispetto al file originale.
Possiamo elencare link simbolici all’interno di una directory con il comando “ls -l”
Nell’immagine sopra possiamo vedere nelle autorizzazioni del primo file il prefisso “l” per i link simbolici, la fine della linea, inoltre, mostra a quali file il link simbolico punti.
Spero che tu abbia trovato questo articolo utile per capire le differenze tra hard link e link simbolici e come crearli. Continua a seguire LinuxHint per ulteriori suggerimenti e aggiornamenti su Linux.