Verschil tussen harde koppeling en zachte koppeling
Inhoud
De koppelingen in Unix zijn in wezen de verwijzingen naar de bestanden en mappen. Het grote verschil tussen een hardlink en softlink is dat hardlink de directe verwijzing naar het bestand is, terwijl softlink de referentie op naam is, wat betekent dat het verwijst naar een bestand op bestandsnaam.
Harde koppeling koppelt de bestanden en mappen in hetzelfde bestandssysteem, maar de Soft link kan de grenzen van het bestandssysteem overschrijden.
Voordat we links begrijpen, moeten we eerst begrijpen inode, een inode is een gegevensstructuur bestaande uit metagegevens over het bestand, zoals de aanmaakdatum van het bestand, bestandsautorisaties, de eigenaar van het bestand en meer.
- Vergelijkingstabel
- Definitie
- Belangrijkste verschillen
- Gevolgtrekking
Vergelijkingstabel
Basis voor vergelijking | Harde link | Soft link |
---|---|---|
basis- | Een bestand is toegankelijk via veel verschillende namen die bekend staan als harde links. | Een bestand kan worden geopend via verschillende verwijzingen die naar dat bestand verwijzen, ook wel een softlink genoemd. |
Linkvalidatie, wanneer het originele bestand is verwijderd | Nog steeds geldig en bestand is toegankelijk. | Ongeldig |
Commando gebruikt voor creatie | ln | ln-s |
inode nummer | Dezelfde | verschillend |
Kan worden gekoppeld | Naar zijn eigen partitie. | Naar elk ander bestandssysteem zelfs via een netwerk. |
Geheugen consumptie | Minder | Meer |
Relatief pad | Niet toepasbaar | toegestaan |
Definitie van harde link
Harde links koppel twee bestanden rechtstreeks in hetzelfde bestandssysteem en voor identificatie gebruikt het het inode-nummer van het bestand. Harde links kunnen niet in mappen worden geïmplementeerd (omdat ze naar inode wijzen). Wanneer "ln”Commando wordt gebruikt om een harde link te genereren, het creëert een ander bestand op de opdrachtregel dat kan worden gebruikt om naar het oorspronkelijke bestand te verwijzen. Zowel het originele als het gegenereerde bestand hebben dezelfde inode en inhoud; daarom hebben ze dezelfde machtigingen en dezelfde eigenaar.
Het verwijderen van het originele bestand heeft geen invloed op het hardgekoppelde bestand en er blijft een hardgekoppeld bestand achter. De inode heeft een teller om het aantal harde koppelingen naar zichzelf te berekenen. Wanneer de teller de waarde 0 aangeeft, wordt de inode geleegd. Wanneer u wijzigingen aanbrengt in de harde koppeling, wordt deze in het oorspronkelijke bestand nagebootst.
Definitie van Soft link
Zachte koppelingen zijn meestal een alternatief pad (of een alias) voor het originele bestand; deze worden ook wel aangeduid als symbolische links. Het bevat de naam van het "doelbestand" van de link, vlag die aangeeft dat het een zachte link is. Wanneer een bestand wordt geopend, wordt de softlink doorgestuurd naar het doelbestand via het pad dat in het onderwerp van de softlink is geschreven.
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, wat betekent dat deze nergens naar wijst en een fout genereert wanneer het doelbestand wordt geopend. Soft links gebruiken geen inode-nummer, in tegenstelling tot harde link. Een absoluut of een relatief pad zou een deel van de symbolische links kunnen zijn.
- Een harde link is een extra naam van het originele bestand dat verwijst naar inode om toegang te krijgen tot het doelbestand.Soft link is daarentegen anders dan het oorspronkelijke bestand en is een alias voor het oorspronkelijke bestand, maar gebruikt geen inode.
- Wanneer een origineel bestand wordt verwijderd, wordt de softlink ongeldig, terwijl een harde link geldig is, zelfs als het doelbestand is verwijderd.
- In Linux is het commando dat wordt gebruikt voor het maken van een harde link:ln“. In tegenstelling tot het commando dat wordt gebruikt voor een softlink is "ln-s“.
- Harde koppeling heeft hetzelfde inode-nummer dat verschilt van softlink, waarbij het doelbestand en de softlink een verschillend inode-nummer hebben.
- Harde links zijn beperkt tot zijn eigen partities, maar zachte links kunnen verschillende bestandssystemen omvatten.
- De prestaties van de hardlink zijn in sommige gevallen beter dan de softlink.
- Relatief pad en absoluut pad zijn beide toegestaan in zachte koppelingen. Integendeel, het relatieve pad is niet toegestaan in een harde link.
Gevolgtrekking
Een harde link vereist geen extra ruimte en mat lost sneller op, maar de wijzigingen die op een harde link worden toegepast, 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 oorspronkelijke bestand. Soft links zijn toegestaan naar mappen in tegenstelling tot Hard link.