Wat is Symbolische link (symlink)?

Een speciaal bestand waarvan de inhoud het pad naar een ander bestand of een andere directory is; wie het opent, gebruikt waar dat pad naartoe leidt. Het wordt gemaakt met ln -s doel linknaam, en ls -l toont het met een l vooraan als „linknaam -> doel”. Het kan naar andere bestandssystemen en naar directory's wijzen, maar als het doel wordt verwijderd of verplaatst, wordt het een verbroken link waarbij er niets te volgen valt. Het wordt onderscheiden van een harde link, een extra naam voor dezelfde inode.

Japanse benaming: シンボリックリンク

“Symbolische link (symlink)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van Linux en de opdrachtregel.

Vakgebied: Basis van Linux en de opdrachtregel

Aanmaken en hoe het eruitziet

Als de link wordt gemaakt met ln -s /opt/tools/sim-2.3 /opt/tools/sim, wordt bij het openen van /opt/tools/sim of bij cd ernaartoe in werkelijkheid /opt/tools/sim-2.3 gebruikt. ls -l toont „sim -> /opt/tools/sim-2.3”, en readlink of realpath laat zien waar de link naartoe leidt. De bestandsrechten van de link zelf worden niet gebruikt; de toegang wordt bepaald door de rechten van het bestand waar de link naartoe leidt.

Relatieve en absolute paden

Als de link een relatief pad bevat, wordt die gevolgd vanaf de directory waarin de link staat. Dat heeft als voordeel dat de verhouding behouden blijft als een hele directory naar elders wordt verplaatst, maar alleen de link verplaatsen verbreekt hem. Met een absoluut pad wijst de link naar dezelfde plaats, waar hij ook naartoe wordt verplaatst, maar een wijziging in de indeling van de doeldirectory's verbreekt hem.

Verschil met een harde link

Een harde link voegt een extra naam toe die naar dezelfde inode wijst, en de inhoud blijft bestaan als de oorspronkelijke naam wordt verwijderd. Hij kan echter alleen binnen hetzelfde bestandssysteem worden gemaakt, en normaal niet voor directory's. Een symbolische link legt alleen een pad vast, dus hij kan over bestandssystemen heen en naar directory's wijzen, maar hij raakt verbroken als het doel verdwijnt.

Veelgestelde vragen

Waar worden symbolische links gebruikt?

Een bekend gebruik is het wisselen tussen versies van een tool. Als /opt/tools/sim naar de directory van de nieuwste versie wijst, houden de scripts van gebruikers hetzelfde pad, en kan de versie worden gewisseld door alleen de link om te zetten. Ze worden ook gebruikt voor de naamgeving van gedeelde bibliotheken, van libfoo.so naar libfoo.so.1.2, en om vanuit een project te verwijzen naar grote gegevens die op een andere schijf staan.

Hoe vind ik verbroken links?

Als het doel dat ls -l toont niet bestaat, markeren veel omgevingen dat met een kleur of een andere weergave. Met GNU find somt find . -xtype l de symbolische links op die nergens naartoe leiden. Een verbroken link proberen te openen geeft de fout „No such file or directory”.

“Symbolische link (symlink)” in de toelichting

Vragen met “Symbolische link (symlink)” (1)

  1. Wat is het resultaat van de laatste twee cat-commando's als de bovenstaande commando's in volgorde worden uitgevoerd?

Verwante termen

Harde link (hard link) inode Bestandsrechten (permissies) cron Git grep Omgevingsvariabele (environment variable) Omleiding van invoer en uitvoer (I/O redirection) Pipe (|) Reguliere expressie (regex)

Naar de woordenlijst