Aanbevolen, 2024

Editor'S Choice

Verschil tussen harde koppeling en zachte koppeling

De koppelingen in Unix zijn in wezen de verwijzingen naar de bestanden en mappen. Het grote verschil tussen een harde koppeling en een zachte koppeling is dat een harde koppeling de directe verwijzing naar het bestand is, terwijl de koppeling naar de naam verwijst naar een bestand op bestandsnaam.

Een harde koppeling koppelt de bestanden en mappen in hetzelfde bestandssysteem, maar de Soft-link kan de grenzen van bestandssystemen doorlopen.

Voordat we links begrijpen, moeten we eerst de inode begrijpen, een inode is een gegevensstructuur die bestaat uit metadata over het bestand, zoals de aanmaakdatum van bestanden, bestandsmachtigingen, de eigenaar van het bestand en meer.

Vergelijkingstabel

Basis voor vergelijkingHarde link
Zachte link
basis-Een bestand is toegankelijk via vele verschillende namen die we harde koppelingen noemen.Een bestand is toegankelijk via verschillende verwijzingen die naar dat bestand wijzen, staat bekend als een zachte link.
Linkvalidatie, wanneer het originele bestand wordt verwijderdNog steeds geldig en bestand kan worden geopend.
Ongeldig
Commando gebruikt voor creatieln
ln -s
inode nummerDezelfde
verschillend
Kan worden gekoppeldNaar zijn eigen partitie.Naar een ander bestandssysteem zelfs genetwerkt.
Geheugen verbruikMinderMeer
Relatief padNiet toepasbaartoegestaan

Definitie van harde koppeling

Harde koppelingen koppelen rechtstreeks twee bestanden in hetzelfde bestandssysteem en voor identificatie gebruikt het het inode-nummer van het bestand. Harde koppelingen kunnen niet worden geïmplementeerd in mappen (omdat ze verwijzen naar inode). Wanneer de opdracht " ln " wordt gebruikt om een ​​harde koppeling te genereren, wordt er een ander bestand op de opdrachtregel gemaakt dat kan worden gebruikt om naar het oorspronkelijke bestand te verwijzen. Zowel het originele als het gegenereerde bestand hebben dezelfde inode en dezelfde inhoud; daarom hebben ze dezelfde rechten en dezelfde eigenaar.

Het verwijderen van het oorspronkelijke bestand heeft geen invloed op het hardgekoppelde bestand en er blijft een bestand met een harde koppeling over. De inode bevat een teller om het aantal harde links naar zichzelf te berekenen. Als de teller de waarde 0 aangeeft, wordt de inode leeggemaakt. Telkens wanneer u wijzigingen aanbrengt in de harde koppeling, wordt deze in het originele bestand geïmiteerd.

Definitie van Soft link

Zachte links zijn meestal een alternatief pad (of een alias) voor het oorspronkelijke bestand; deze worden ook symbolische koppelingen genoemd . Het bevat de naam van het "doelbestand" van de link, een vlag die aangeeft dat het een softlink is. Wanneer een bestand wordt geopend, leidt de zachte koppeling het om naar het doelbestand via het pad geschreven in het onderwerp van de zachte koppeling.

Deze zijn erg handig in het geval van Windows OS waarbij de softlink zich als snelkoppelingen gedraagt. Het maken en verwijderen van de softlinks heeft geen invloed op het oorspronkelijke bestand. Als het doelbestand wordt verwijderd, bungelt de softlink waardoor deze nergens naar verwijst en genereert het een foutbericht wanneer het doelbestand wordt geopend. Softlinks gebruiken geen inode-nummer, in tegenstelling tot harde koppeling. Een absoluut of een relatief pad zou een deel van de symbolische koppelingen kunnen zijn.

Belangrijkste verschillen tussen de harde koppeling en de zachte koppeling

  1. Een harde koppeling is een extra naam van het originele bestand dat de inode verwijst om toegang te krijgen tot het doelbestand. Softlink daarentegen is verschillend van het originele bestand en is een alias van het originele bestand maar gebruikt geen inode.
  2. Wanneer een origineel bestand wordt verwijderd, wordt de soft link ongeldig terwijl een harde link geldig is, zelfs als het doelbestand wordt verwijderd.
  3. In Linux is de opdracht die wordt gebruikt voor het maken van een harde koppeling " ln ". Daarentegen is de opdracht die voor een softlink wordt gebruikt " ln-s ".
  4. Een harde koppeling heeft hetzelfde inode-nummer dat verschilt van de softlink, waarbij het doelbestand en de softlink een verschillend inode-nummer hebben.
  5. Harde koppelingen zijn beperkt tot zijn eigen partities, maar zachte koppelingen kunnen verschillende bestandssystemen omvatten.
  6. De prestaties van een harde koppeling zijn in sommige gevallen beter dan een zachte koppeling.
  7. Relatief pad en absoluut pad beide zijn toegestaan ​​in softlinks. Integendeel, het relatieve pad is niet toegestaan ​​in een harde koppeling.

Conclusie

Een harde koppeling vereist geen extra ruimte en mat neemt sneller af, maar de wijzigingen die zijn aangebracht op een harde koppeling worden weerspiegeld in het oorspronkelijke bestand. Aan de andere kant heeft Soft link extra ruimte nodig, maar elke wijziging in de softlink heeft geen invloed op het originele bestand. Softlinks zijn toegestaan ​​in mappen in tegenstelling tot de harde koppeling.

Top