Suivant: Contrôle de processus Chapitre: Les liens sur Avant: Liens physiques
Les liens symboliques
C'est une autre sorte de lien, qui fonctionne d'une toute autre manière que ce que nous venons de voir. Un lien symbolique permet bien de donner un nom supplémentaire à un fichier, mais n'utilise pas l'i-nud physique du fichier. Il est simplement interprété par le système, qui va suivre l'indication contenue pour aller chercher un autre fichier, c'est un peu comme un panneau indiquant une direction à suivre.
La commande ln -s créera un lien symbolique vers un fichier. Par exemple, si nous utilisons la commande
nous créerons le lien symbolique titi qui pointera sur le fichier toto. Si nous tapons ls -i, nous verrons que les deux fichiers ont des i-nuds différents:
Mais la commande ls -l nous indiquera clairement que le fichier titi est un lien symbolique pointant vers toto:
Les permissions sur un lien symbolique ne sont pas utilisées (elles apparaissent toujours comme rwxrwxrwx). Ce sont celles du fichier sur lequel il pointe qui déterminent les droits d'accès. (notre fichier toto, dans cet exemple).
Les liens physiques et les liens symboliques sont très similaires dans leur fonctionnement, mais il y a quelques différences. En premier lieu, il est possible de créer des liens symboliques sur des fichiers qui n'existent pas; ce qui est irréalisable avec les liens physiques. Les liens symboliques sont interprétés différemment par le noyau, ce n'est qu'une différence technique mais qui quelquefois peut avoir son importance. Les liens symboliques sont très utiles car ils permettent de traverser la barrière des différents systèmes de fichiers; et enfin ils identifient clairement le fichier sur lequel ils pointent, qu'il est facile de retrouver; alors qu'identifier quels fichiers sont liés au même i-nud est bien moins évident.
Les systèmes UNIX font un abondant usage des liens, Linux n'échappe pas à la règle. Les liens symboliques sont particulièrement importants pour les bibliothèques partagées dans le répertoire /lib. Voyez la section 4.7.2 à ce propos.