Differenza tra Hard link e Soft link

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 24 Aprile 2024
Anonim
Hard vs Soft Links in Linux  (Linux Links)
Video: Hard vs Soft Links in Linux (Linux Links)

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.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoCollegamento 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 eliminatoAncora valido e si può accedere al file.
Non valido
Comando utilizzato per la creazioneln
Ln -s
numero di inodeStesso
Diverso
Può essere collegato Alla sua stessa partizione.A qualsiasi altro file system anche in rete.
Consumo di memoriaDi menoDi Più
Percorso relativoNon applicabilePermesso


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.

  1. 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.
  2. 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.
  3. In Linux, il comando utilizzato per la creazione di hard link è "ln“. Al contrario, il comando utilizzato per un collegamento software è "Ln -s“.
  4. 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.
  5. I collegamenti fisici sono limitati alle proprie partizioni, ma i collegamenti diretti possono coprire diversi file system.
  6. In alcuni casi, le prestazioni dell'hard link sono migliori del soft link.
  7. 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.