Link morbido (simbolico) vs link fisso

Soft Link Vs Hard Link



I collegamenti simbolici (chiamati anche collegamenti software) e gli hard link sono una risorsa per accedere a file o directory da qualsiasi posizione. Questo articolo descriverà le differenze tra collegamenti simbolici e collegamenti reali.

Collegamenti rigidi

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, i permessi e altri attributi. Ogni numero di inode è univoco all'interno di un filesystem, impedendo il funzionamento di hard link tra diverse partizioni o sistemi. Gli hard link non possono essere utilizzati per collegare le directory.







A differenza dei soft link, gli hard link contengono le informazioni a cui si collegano, quindi se il file originale viene rimosso puoi comunque accedere ai suoi dati.



In tutti i sistemi Linux vengono creati collegamenti sia fisici che simbolici con il comando ln . Per iniziare, crea prima un file chiamato LinuxHintFile e una directory chiamata LinuxHintDirectory come mostrato nell'immagine qui sotto:



toccoLinuxHintFile
rmkdir LinuxHintDirectory
ls
radice@LinuxSuggerimento:/casa/linuxhint#





Per creare un hard link chiamato Link2LHFile al file LinuxHintFile, esegui nel terminale:

lnLinuxHintFile Link2LHFile



Dopo aver verificato con ls vediamo l'hard link che abbiamo appena creato, se digiti ls -i vedrai gli inode dei file, puoi confermare che il link che abbiamo appena creato ha lo stesso numero di inode del file originale, digita:

ls -io

Come abbiamo detto sopra, non possiamo usare hard link per directory né collegamenti ad altri volumi o filesystem, collegheremo LinuxHintDirectory con un soft link.

Puoi trovare hard link all'interno della directory di lavoro eseguendo:

trova -genereF-link+1

Puoi anche trovare file per inode, per questa esecuzione:

trova.-inum <NumeroInode>

Come vedi, ha trovato sia il file originale che l'hard link che condividono lo stesso numero di inode.

Link morbidi

A differenza dei collegamenti fisici, i collegamenti software non sono copie del file originale, contengono il percorso del file originale, per questo motivo se il file originale viene rimosso, il collegamento software o il collegamento simbolico indicherà che nessun file diventa un collegamento interrotto, o un collegamento orfano, il che significa che se perdi il file sorgente, se lo elimini o lo sposti il ​​collegamento simbolico perderà l'accesso alle informazioni, mentre con l'hard link le informazioni rimangono nonostante la rimozione del file sorgente perché è un completo ed esatto copia di quel file.

Inoltre, contrariamente ai collegamenti reali, i collegamenti simbolici non condividono lo stesso inode con il file originale, ecco perché il collegamento simbolico può attraversare volumi e filesystem mentre i collegamenti reali no. I collegamenti simbolici possono essere utilizzati per collegare le directory mentre con collegamenti reali non è possibile.

Anche i collegamenti simbolici vengono creati 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 eseguire:

ln -SLinuxHintDirectory LHDLink

E poi corri ' ls -i ' per verificare che sia stato creato correttamente:

Come vediamo in questo caso il collegamento simbolico è stato creato, ma ha un numero di inode diverso rispetto al file originale.

Possiamo elencare i collegamenti simbolici all'interno di una directory con il comando ls -l

Nell'immagine sopra possiamo vedere nei permessi del primo file il prefisso l per i collegamenti simbolici, la fine della riga mostra anche a quale file punta il collegamento simbolico.

Spero che tu abbia trovato questo articolo utile per comprendere le differenze tra collegamenti reali e collegamenti simbolici e come crearli. Continua a seguire LinuxHint per ulteriori suggerimenti e aggiornamenti su Linux.