Thursday Feb 03, 2022

Differenza tra Hard link e Soft link

I link in Unix sono essenzialmente i puntatori che si associano ai file e alle directory. La differenza principale 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 che significa che punta a un file per nome di file.

Hard link collega i file e le directory nello stesso file system, ma il soft link può attraversare i confini del file system.

Prima di capire i link dovremmo prima capire l’inode, un inode è una struttura di dati composta da metadati sul file come la data di creazione del file, le autorizzazioni del file, il proprietario del file e altro.

Contenuto: Hard link Vs Soft link

  1. Cartina di confronto
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Cartina di confronto

Base di confronto Hard link Soft link
Basic Un file può essere raggiunto attraverso molti nomi diversi conosciuti come hard link. Si può accedere a un file attraverso diversi riferimenti che puntano a quel file, noti come soft link.
Convalida del link, quando il file originale viene cancellato È ancora valido e si può accedere al file. Invalido
Comando usato per la creazione ln ln -s
numero del nodo Simile Diverso
Può essere collegato alla propria partizione. A qualsiasi altro file system anche in rete.
Consumo di memoria Meno Più
Percorso relativo Non applicabile Accordato

Definizione di Hard link

Gli hard link collegano direttamente due file nello stesso file system e per identificarli usano il numero di inode del file. Gli hard link non possono essere implementati sulle directory (poiché puntano all’inode). Quando il comando “ln” viene utilizzato per generare un hard link, crea un altro file sulla linea di comando che può essere utilizzato per fare riferimento al file originale. Sia il file originale che quello generato hanno lo stesso inode e lo stesso contenuto; quindi avranno gli stessi permessi e lo stesso proprietario.

La rimozione del file originale non influenza il file hard linkato, e rimarrà un file hard linkato. L’inode contiene un contatore, per calcolare il numero di hard link a se stesso. Quando il contatore indica il valore 0, allora l’inode viene svuotato. Ogni volta che si apportano delle modifiche all’hard link, questo verrà imitato nel file originale.

Definizione di Soft link

I soft link sono di solito un percorso alternativo (o un alias) per il file originale; questi vengono anche chiamati link simbolici. Include il nome del “file di destinazione” del link, flag che specifica che si tratta di un soft link. Quando si accede a un file, il soft link lo reindirizza al file di destinazione attraverso il percorso scritto nell’oggetto del soft link.

Sono molto utili nel caso dei sistemi operativi Windows, dove il soft link si comporta come scorciatoia. La creazione e la cancellazione dei soft link non influiscono sul file originale. Se il file di destinazione viene cancellato, il soft link penzola, cioè non punta da nessuna parte e genera un messaggio di errore quando si accede al file di destinazione. I soft link non usano il numero di inode, a differenza degli hard link. Un percorso assoluto o relativo potrebbe essere una parte dei link simbolici.

Differenze chiave tra Hard link e Soft link

  1. Un hard link è un nome aggiuntivo del file originale che fa riferimento all’inode per accedere al file di destinazione. Al contrario, il soft link è distinto dal file originale ed è un alias del file originale ma non usa l’inode.
  2. Quando un file originale viene cancellato il soft link diventa non valido mentre, un hard link è valido anche se il file di destinazione viene cancellato.
  3. In Linux, il comando usato per la creazione dell’hard link è “ln”. Al contrario, il comando usato per un collegamento morbido è “ln -s”.
  4. Il collegamento duro ha lo stesso numero di inode a differenza del collegamento morbido, dove il file di destinazione e il suo collegamento morbido hanno un numero di inode distinto.
  5. I collegamenti duri sono limitati alle proprie partizioni, ma i collegamenti morbidi possono coprire diversi file system.
  6. Le prestazioni del collegamento duro sono migliori del collegamento morbido in alcuni casi.
  7. Percorso relativo e percorso assoluto sono entrambi ammessi nei collegamenti morbidi. Al contrario, il percorso relativo non è permesso in un hard link.

Conclusione

Un hard link non richiede spazio extra e si risolve più velocemente, ma le modifiche applicate a un hard link si riflettono nel file originale. D’altra parte, il collegamento morbido ha bisogno di spazio extra ma qualsiasi cambiamento nel collegamento morbido non ha impatto sul file originale. I collegamenti morbidi sono consentiti per le directory a differenza degli Hard link.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Back to Top