Hoe maak je harde links Linux?

How Create Hard Links Linux



Koppelen is een interessante functie in Linux. In UNIX-achtige besturingssystemen is alles een bestand. Een bestand is in wezen een koppeling naar een inode, een speciaal type gegevensstructuur waarin alles over een bepaald bestand wordt opgeslagen, behalve de oorspronkelijke naam en werkelijke inhoud. Dit is de functie die de koppeling gebruikt. Een link maken is een ander bestand maken dat verwijst naar dezelfde onderliggende inode als een ander bestand. In veel situaties is het een ongelooflijk nuttige methode.

Bekijk hoe u harde koppelingen maakt in Linux.







Harde links in Linux

Voordat we dieper duiken, laten we het hebben over harde en zachte links. Er zijn enkele fundamentele verschillen tussen hen. In het geval van een harde link kan deze alleen in hetzelfde bestandssysteem bestaan, terwijl de symbolische link cross-filesystems blijft bestaan. Bovendien kan het alleen worden uitgevoerd op gewone bestanden. U kunt ook geen harde directory-links maken, dus er wordt geen directory-lus gemaakt.



Als een bestand van de harde link wordt verwijderd, wordt de link verwijderd uit de onderliggende inode.



De opdracht ls kan de inode van een doelbestand/map afdrukken.





$ls -bij de <file_or_dir>

Harde links maken

Het genereren van een harde link is vrij eenvoudig. Om links te maken, is ln de speciale tool die beschikbaar is in bijna alle Linux-distributies.



Gebruik de volgende opdrachtstructuur om een ​​harde koppeling te maken. Merk op dat de bestemming zich binnen hetzelfde bestandssysteem moet bevinden. De vlag -v is voor de uitgebreide modus.

$ln -v <bron> <koppeling>


Controleer het resultaat.

$ls -bij de <doelwit>


Wat betreft directory-hardlinking, het is niet toegestaan. Hypothetisch is het nog steeds mogelijk om te maken, maar de meeste Linux-distributies schakelen die functie uit, zelfs als je de actie uitvoert met root-privilege. Gebruik zachte koppelingen voor het koppelen van mappen.

Softlinks

Softlinking wordt gewoonlijk symbolische links genoemd. Softlinking kan cross-filesystem zijn. Het is per definitie geen standaardbestand, maar eerder een bestand dat verwijst naar een bestaand bestand. Hier heeft het softlink-bestand een andere inode-waarde, maar het verwijst naar het originele bestand.

Net als bij het maken van harde links, gebruiken we de ln-tool. Voeg de vlag -s toe om aan te geven dat u een zachte link wilt maken.

$ln -vs <bron> <bestemming>


Controleer het resultaat.

$ls -bij de <doelwit>

Als er al een koppeling bestaat, kunt u deze bijwerken met de vlag -f die ln dwingt om de koppeling bij te werken zonder enige bevestiging. Als alternatief kunt u de vlag -i gebruiken voor het maken van interactieve koppelingen.

$ln -sf <bron> <bestemming>


Vergeet niet het resultaat te verifiëren.

$ls -bij de <doelwit>

Koppelingen zoeken

Ervan uitgaande dat er meerdere links naar hetzelfde bestand zijn, kan het moeilijk worden om ze bij te houden. Gebruik in een dergelijke situatie deze methode om alle links te achterhalen.

Hiervoor hebben we de inode-waarde van het originele bestand nodig. Gebruik de volgende opdracht om het inodenummer te achterhalen.

$ls -bij de <Doelbestand>


Gebruik nu het inodenummer om alle links naar dat bestand te achterhalen. Hier moet de huidige actieve map de map zijn waar het originele bestand zich bevindt.

$vind.-inum <inode_value>

Links verwijderen

Als u een harde link wilt uitschakelen, kunt u dit doen door het gekoppelde bestand te verwijderen.

$rm <koppeling>

Laatste gedachten

Koppelen is een krachtig hulpmiddel dat u in veel situaties kunt gebruiken. Hoewel het zijn eigen beperkingen heeft, kan het uitstekende voordelen bieden voor veel scenario's.

Geïnteresseerd in meer diepgaande informatie over het ln-commando? Bekijk hoe u het ln-commando gebruikt.

Veel plezier met rekenen!