Wat te weten
- Maak een harde link: ln /pad/naar/bestand /pad/naar/hardlink. Controleer hoeveel bestanden naar dezelfde inode linken met het ls-commando: ls -lt
- Maak een symbolische link: ln -s /pad/naar/bestand /pad/naar/link. Vermijd het overschrijven van een bestaande link: ln -s -b /pad/naar/bestand /pad/naar/link
- Om de bestaande link te overschrijven: ln -s -f /pad/naar/bestand /pad/naar/link. Een overschrijfwaarschuwing krijgen: ln -s -i /pad/naar/bestand /pad/naar/link
In dit artikel wordt uitgelegd hoe u symbolische koppelingen maakt met het ln-commando in Linux. Symbolische koppelingen werken als snelkoppelingen om lange paden korter te maken en om toegang te krijgen tot bestanden op andere partities en stations.
Beginnen
Linux ondersteunt twee primaire koppelingsmethoden:
- Harde links: Links naar een echt bestand op het Linux-systeem.
- Softlinks: vergelijkbaar met een Windows-snelkoppeling, die verwijst naar de oorspronkelijke bestandslocatie. Ook wel een symbolische link genoemd.
Wat is een harde link?
Een inode identificeert elk bestand in uw bestandssysteem. Meestal gebruikt u dit nummer niet, maar het belang ervan komt aan het licht wanneer u een harde link maakt. Een harde link kent een andere naam toe aan een bestand op een andere locatie, maar het is nog steeds hetzelfde bestand. De sleutel die de bestanden met elkaar verbindt, is het inodenummer. Het mooie van harde links is dat deze geen extra fysieke ruimte op de harde schijf in beslag nemen. Een harde link maakt een efficiënte bestandscategorisatie mogelijk. Maak bijvoorbeeld in uw fotocollectie een map met de naam vakantiefoto’s en een andere map met de naam kinderfoto’s. In plaats van een vakantiefoto van uw kinderen naar beide mappen te kopiëren, plaatst u deze in één map en maakt u er vervolgens een harde link naar in de andere map. Voer de volgende opdracht uit om een harde link te maken: ln /path/to/file /path/to/hardlink
Een foto genaamd Brighton strand in de vakantiefoto’s map links naar de kinderfoto’s map via het commando: ln /holidayphotos/BrightonBeach.jpg /kidsphotos/BrightonBeach.jpg
Controleer hoeveel bestanden naar dezelfde inode linken door het ls-commando als volgt te gebruiken: ls -lt
De uitvoer zal zoiets zijn als: -rw-r–r– 1 gebruikersnaam groepsnaam datum bestandsnaam. Het eerste deel van de uitvoer toont de machtigingen van de gebruiker, maar het belangrijkste deel is het nummer na de machtigingen en vóór de gebruikersnaam.
Als het nummer 1 is, is dit het enige bestand dat naar een bepaalde inode verwijst (dat wil zeggen, het is niet gekoppeld). Als het aantal groter is dan 1, dan is het hard-linked door twee of meer bestanden.
Wat is een symbolische link?
Een symbolische link is als een snelkoppeling van het ene bestand naar het andere. De inhoud van een symbolische link is het adres van het bestand of de map waarnaar wordt gelinkt. Het voordeel van het gebruik van symbolische koppelingen is dat u kunt koppelen naar bestanden en mappen op andere partities en andere apparaten. Een verschil tussen een harde link en een symbolische link is dat een harde link moet worden gemaakt tegen een bestand dat bestaat, terwijl een zachte link kan worden gemaakt voordat het bestand waarnaar het verwijst, wordt gemaakt.
Maak een symbolische link
Gebruik de volgende syntaxis om een symbolische link te maken: ln -s /path/to/file /path/to/link
Als u zich zorgen maakt over het overschrijven van een bestaande link, gebruik dan de -b schakel als volgt: ln -s -b /pad/naar/bestand /pad/naar/link
Deze schakeloptie maakt een back-up van de link als deze bestaat. Het creëert dezelfde bestandsnaam, maar met een tilde aan het einde. Als er een bestand bestaat met dezelfde naam als de symbolische link, krijgt u een foutmelding. Forceer de link om het bestand te overschrijven met behulp van de volgende opdracht: ln -s -f /path/to/file /path/to/link
Gebruik de -f schakelen zonder de -b switch, omdat u het originele bestand verliest. Ontvang een bericht met de vraag of je een bestand wilt overschrijven als het bestaat: ln -s -i /pad/naar/bestand /pad/naar/link
Met de meeste moderne bestandsverkenner-applicaties in Linux kun je een symbolische link maken met behulp van de GUI. Als u bijvoorbeeld Thunar File Manager gebruikt, klikt u in een willekeurige map met de rechtermuisknop op een leeg gebied van de bestandenlijst en selecteert u vervolgens: Symlink maken.
Deze opdracht maakt wat lijkt op een nieuwe map. Het is eigenlijk een symbolische link die verwijst naar de map waarin je het hebt gemaakt. Plak deze symbolische link waar je maar wilt, en wanneer je hem opent, zal hij altijd de originele map openen waarin je hem hebt gemaakt.
Hoe weet u of een bestand een symbolische link is?
Voer het volgende uit: ls commando: ls -lt
Als een bestand een symbolische link is, ziet u zoiets als dit: mijnsnelkoppeling -> mijnbestand