Differenza tra Hard link e Soft link
Contenuto
I collegamenti in Unix sono essenzialmente i puntatori che si associano ai file e alle directory. La principale differenza tra un hard link e un soft link è che l'hard link è il riferimento diretto al file mentre il soft link è il riferimento per nome, il che significa che punta a un file per nome del file.
Il collegamento fisico collega i file e le directory nello stesso file system, ma il collegamento software può attraversare i confini del file system.
Prima di capire i collegamenti dovremmo prima capire inode, un inode è una struttura di dati composta da metadati relativi al file come la data di creazione del file, le autorizzazioni del file, il proprietario del file e altro.
- Tabella di comparazione
- Definizione
- Differenze chiave
- Conclusione
Tabella di comparazione
Base per il confronto | Collegamento reale | Collegamento morbido |
---|---|---|
Di base | È possibile accedere a un file attraverso molti nomi diversi noti come collegamenti reali. | È possibile accedere a un file tramite diversi riferimenti che puntano a quel file è noto come soft link. |
Convalida del collegamento, quando il file originale viene eliminato | Ancora valido e si può accedere al file. | Non valido |
Comando utilizzato per la creazione | ln | Ln -s |
numero di inode | Stesso | Diverso |
Può essere collegato | Alla sua stessa partizione. | A qualsiasi altro file system anche in rete. |
Consumo di memoria | Di meno | Di Più |
Percorso relativo | Non applicabile | Permesso |
Definizione di collegamento reale
Collegamenti reali collega direttamente due file nello stesso file system e per l'identificazione utilizza il numero di inode del file. I collegamenti fissi non possono essere implementati su directory (poiché puntano all'inode). Quando "ln"Comando viene utilizzato per generare un collegamento reale, crea un altro file sulla riga di comando che può essere utilizzato per fare riferimento al file originale. Sia il file originale che quello generato hanno lo stesso inode e contenuto; quindi avranno le stesse autorizzazioni e lo stesso proprietario.
La rimozione del file originale non influenza il file con collegamento fisico e rimarrà un file con collegamento rigido. L'inode contiene un contatore, per calcolare il numero di collegamenti reali a se stesso. Quando il contatore indica il valore 0, l'inode viene svuotato. Ogni volta che si apportano modifiche al collegamento reale, verrà imitato nel file originale.
Definizione di Soft link
Collegamenti morbidi di solito sono un percorso alternativo (o un alias) per il file originale; questi sono anche indicati come collegamenti simbolici. Include il nome del "file di destinazione" del collegamento, flag che specifica che si tratta di un collegamento software. Quando si accede a un file, il collegamento software lo reindirizza al file di destinazione attraverso il percorso scritto nell'oggetto del collegamento software.
Questi sono molto utili nel caso di sistemi operativi Windows in cui il collegamento software si comporta come collegamenti. La creazione e l'eliminazione dei collegamenti software non influiscono sul file originale. Se il file di destinazione viene eliminato, il collegamento software pende, il che significa che non punta da nessuna parte e genera un errore quando si accede al file di destinazione. I collegamenti software non utilizzano il numero di inode, a differenza dell'hard link. Un percorso assoluto o relativo potrebbe far parte dei collegamenti simbolici.
- Un collegamento reale è un nome aggiuntivo del file originale che fa riferimento a inode per accedere al file di destinazione.Al contrario, il soft link è distinto dal file originale ed è un alias del file originale ma non utilizza inode.
- Quando un file originale viene eliminato, il collegamento software diventa non valido, mentre un collegamento reale è valido anche se il file di destinazione viene eliminato.
- In Linux, il comando utilizzato per la creazione di hard link è "ln“. Al contrario, il comando utilizzato per un collegamento software è "Ln -s“.
- L'hard link ha lo stesso numero di inode diverso dal soft link, dove il file di destinazione e il suo soft link hanno un numero di inode distinto.
- I collegamenti fisici sono limitati alle proprie partizioni, ma i collegamenti diretti possono coprire diversi file system.
- In alcuni casi, le prestazioni dell'hard link sono migliori del soft link.
- Il percorso relativo e il percorso assoluto sono entrambi consentiti nei collegamenti software. Al contrario, il percorso relativo non è consentito in un collegamento reale.
Conclusione
Un collegamento reale non richiede spazio aggiuntivo e risoluzione dei tappetini più veloce, ma le modifiche applicate a un collegamento reale si riflettono nel file originale. D'altra parte, il collegamento software ha bisogno di spazio aggiuntivo, ma qualsiasi modifica al collegamento software non influisce sul file originale. I collegamenti soft sono consentiti alle directory a differenza dell'Hardlink.