Raccomandato, 2024

Scelta Del Redattore

Differenza tra hard link e soft link

I collegamenti in Unix sono essenzialmente i puntatori che si associano ai file e alle directory. La principale differenza tra un hard link e il soft link è che il collegamento reale è il riferimento diretto al file, mentre il soft link è il riferimento per nome, il che significa che punta a un file in base al nome del file.

L'hard link collega i file e le directory nello stesso file system, ma il collegamento Soft può attraversare i confini del file system.

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

Grafico comparativo

Base per il confrontoHard link
Collegamento morbido
Di baseUn file è accessibile attraverso molti nomi diversi conosciuti come hard link.È possibile accedere a un file tramite diversi riferimenti che indicano che il file è noto come collegamento software.
Convalida del collegamento, quando il file originale viene eliminatoAncora valido e il file è accessibile.
Non valido
Comando utilizzato per la creazioneln
ln -s
numero di inodeStesso
Diverso
Può essere collegatoAlla sua propria partizione.A qualsiasi altro file system anche in rete.
Consumo di memoriaDi menoDi Più
Percorso relativoNon applicabilePermesso

Definizione di hard link

Gli hard link collegano direttamente due file nello stesso file system e per l'identificazione utilizza il numero di inode del file. Gli hard link non possono essere implementati nelle directory (poiché indicano l'inode). Quando il comando " ln " è utilizzato per generare un hard link, crea un altro file sulla riga di comando che può essere usato per riferirsi al file originale. Sia il file originale che quello generato hanno lo stesso inode e il medesimo contenuto; quindi avranno le stesse autorizzazioni e lo stesso proprietario.

La rimozione del file originale non influenza il file collegato, e rimarrà un file collegato. 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 fisico, esso verrà imitato nel file originale.

Definizione di Soft link

I collegamenti software sono di solito 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 in caso di Windows OS in cui il collegamento soft si comporta come scorciatoie. La creazione e la cancellazione dei collegamenti software non influiscono sul file originale. Se il file di destinazione viene eliminato, il soft link ciondola il che significa che non punta da nessuna parte e genera un messaggio di errore quando si accede al file di destinazione. I collegamenti software non utilizzano il numero di inode, a differenza del collegamento fisico. Un percorso assoluto o relativo potrebbe essere una parte dei collegamenti simbolici.

Differenze chiave tra hard link e soft link

  1. Un hard link è un nome aggiuntivo del file originale che fa riferimento a inode per accedere al file di destinazione. Al contrario, il collegamento software è diverso dal file originale ed è un alias del file originale ma non utilizza l'inode.
  2. Quando un file originale viene eliminato, il collegamento software non è più 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 ". Come contro, il comando utilizzato per un collegamento software è " ln -s ".
  4. L'hard link ha lo stesso numero di inode diverso dal soft link, in cui il file di destinazione e il suo collegamento soft hanno un numero di inode distinto.
  5. Gli hard link sono limitati alle proprie partizioni, ma i soft link possono coprire diversi file system.
  6. In alcuni casi, le prestazioni del collegamento fisico sono migliori rispetto al collegamento software.
  7. Il percorso relativo e il percorso assoluto sono entrambi consentiti nei collegamenti software. Al contrario, il percorso relativo non è consentito in un collegamento fisico.

Conclusione

Un hard link non richiede spazio extra e la risoluzione mat più veloce, ma le modifiche applicate a un hard link si riflettono nel file originale. D'altra parte, il collegamento software richiede spazio aggiuntivo, ma qualsiasi modifica nel collegamento software non ha alcun impatto sul file originale. I collegamenti software sono consentiti alle directory, a differenza del collegamento fisso.

Top