Er zijn 2 soorten links die u binnen Linux kunt maken:
- Harde links
- Symbolische koppelingen
Een symbolische koppeling lijkt veel op een snelkoppeling op het bureaublad binnen Windows. De symbolische koppeling verwijst alleen naar de locatie van een bestand.
Het verwijderen van een symbolische link heeft geen effect op het fysieke bestand waarnaar de link verwijst.
Een symbolische koppeling kan verwijzen naar elk bestand op het huidige bestandssysteem of naar andere bestandssystemen. Dit maakt het flexibeler dan een harde link.
Een harde koppeling is eigenlijk hetzelfde bestand waarnaar wordt gelinkt, maar met een andere naam. De eenvoudigste manier om erover na te denken is als volgt:
Stel je voor dat je bent geboren met de voornaam Robert. Andere mensen kennen je misschien als Robbie, Bob, Bobby of Rob. Elke persoon zou over dezelfde persoon praten.
Elke koppeling voegt 1 toe aan een teller van links, wat betekent dat het fysieke bestand moet worden verwijderd dat u elke koppeling moet verwijderen.
Waarom harde koppelingen gebruiken?
Harde links bieden een efficiënte manier om bestanden te ordenen. De gemakkelijkste manier om dit te beschrijven is met een oude Sesame Street-aflevering.
Bert zei tegen Ernie dat hij al zijn spullen moest opruimen en dus begon Ernie aan zijn taak. Allereerst besloot hij alle rode dingen op te ruimen. "De brandweerwagen is rood". Dus Ernie zet de brandweerwagen weg.
Vervolgens besluit Ernie om al het speelgoed met wielen weg te doen. De brandweerwagen heeft wielen. Dus Ernie ruimde de brandweerwagen weg.
Het is overbodig om te zeggen dat Bert thuiskomt om dezelfde puinhoop te vinden als voorheen, maar Ernie had de vuurmotor een half dozijn opgeruimd.
Stel je voor dat de brandweerauto slechts een foto was van een brandweerauto. U zou als volgt verschillende mappen op uw computer kunnen hebben:
- Foto's van rode dingen
- Foto's van voertuigen
- Foto's van hulpdiensten
Nu kunt u een kopie van de foto maken en deze in elk van de mappen plaatsen. Dit betekent dat u drie exemplaren van hetzelfde bestand hebt die drie keer zoveel ruimte in beslag nemen.
Het categoriseren van foto's door er kopieën van te maken neemt mogelijk niet al te veel ruimte in beslag, maar als je hetzelfde zou proberen met video's, zou je je schijfruimte aanzienlijk verminderen.
Een harde koppeling neemt helemaal geen ruimte in beslag. U zou daarom dezelfde video in verschillende categorieën kunnen opslaan (bijv. Per jaar, genre, cast, directors) zonder uw schijfruimte te verminderen.
Hoe een harde link te maken
U kunt een harde koppeling maken met behulp van de volgende syntaxis:
ln pad / naar / bestand / pad / naar / hard / koppeling
In de bovenstaande afbeelding hebben we bijvoorbeeld een Alice Cooper-muziekmap met de naam Trash in het pad / home /ary / Music / Alice Cooper / Trash. In die map zijn er 10 nummers waarvan één het klassieke vergif is.
Nu is Poison een rocknummer, dus hebben we een map met de naam Rock onder de muziekmap gemaakt en een harde link naar Poison gemaakt door het volgende bestand te typen:
In "01 - Poison.mp3" "~ / Music / rock / Poison.mp3"
Dit is een goede manier om muziek te organiseren.
Hoe het verschil te zien tussen een harde link en een symbolische link
U kunt zien of een bestand een harde koppeling heeft met de opdracht ls:
ls -lt
Een standaardbestand zonder links ziet er als volgt uit
-rw-r - r-- 1 gary gary 1000 dec 18 21:52 poison.mp3
De kolommen zijn als volgt:
- -rw-r - r-- = rechten
- 1 = aantal links
- gary = groep
- gary = eigenaar
- 1000 = bestandsgrootte
- 18 december = datum
- 21:52 = tijd
- poison.mp3 = bestandsnaam
Als dit een harde koppeling was, zou de uitvoer er als volgt uitzien:
-rw-r - r-- 2 gary gary 1000 dec 18 21:52 poison.mp3
Merk op dat het aantal links kolom toont 2. Elke keer dat een harde link wordt gemaakt, zal dat aantal toenemen.
Een symbolische link ziet er als volgt uit:
-rw-r - r-- 1 gary gary 1000 dec 18 21:52 poison.mp3 -> poison.mp3
Je kunt duidelijk zien dat het ene bestand naar het andere verwijst.
Hoe alle harde koppelingen naar een bestand te vinden
Alle bestanden in uw Linux-systeem bevatten een inode-nummer dat het bestand op unieke wijze identificeert. Een bestand en de harde koppeling bevatten dezelfde inode.
Om het inodenummer voor een bestandstype te zien, voert u de volgende opdracht uit:
ls -i
De uitvoer voor een enkel bestand is als volgt:
1234567 bestandsnaam
Om de harde koppelingen voor een bestand te vinden, hoeft u alleen maar een bestand te zoeken naar alle bestanden met dezelfde inode (d.w.z. 1234567).
U kunt dat doen met de volgende opdracht:
vind ~ / -xdev -inum 1234567