<Précédent | Table des matières | Suivant>
Création de liens symboliques
Les liens symboliques ont été créés pour surmonter les deux inconvénients des liens physiques : les liens physiques ne peuvent pas s'étendre sur des périphériques physiques et les liens physiques ne peuvent pas référencer des répertoires, uniquement des fichiers. Les liens symboliques sont un type spécial de fichier qui contient un pointeur de texte vers le fichier ou le répertoire cible.
La création de liens symboliques est similaire à la création de liens physiques :
[moi@linuxbox aire de jeux]$ ln -s amusant amusant-sym [moi@linuxbox aire de jeux]$ ln -s ../fun dir1/fun-sym [moi@linuxbox aire de jeux]$ ln -s ../fun dir2/fun-sym
[moi@linuxbox aire de jeux]$ ln -s amusant amusant-sym [moi@linuxbox aire de jeux]$ ln -s ../fun dir1/fun-sym [moi@linuxbox aire de jeux]$ ln -s ../fun dir2/fun-sym
Le premier exemple est assez simple, nous ajoutons simplement l'option "-s" pour créer un lien symbolique plutôt qu'un lien dur. Mais qu'en est-il des deux suivants ? N'oubliez pas que lorsque nous créons un lien symbolique, nous créons une description textuelle de l'emplacement du fichier cible par rapport au lien symbolique. Il est plus facile de voir si nous regardons le ls sortie:
[moi@linuxbox aire de jeux]$ ls -l répertoire1
[moi@linuxbox aire de jeux]$ ls -l répertoire1
Total des 4 | ||
-rw-r--r-- 4 moi | me | 1650 2016-01-10 16:33 amusant-dur |
lrwxrwxrwx 1 moi | me | 6 2016-01-15 15:17 fun-sym -> ../fun |
La liste pour amusant-sym in Dir1 montre qu'il s'agit d'un lien symbolique par le premier "l" dans le premier champ et qu'il pointe vers "../fun", ce qui est correct. Par rapport à l'emplacement de amusant-sym, amusement est dans le répertoire au-dessus. Notez également que la longueur du fichier de lien symbolique est de 6, le nombre de caractères dans la chaîne « ../fun » plutôt que la longueur du fichier vers lequel il pointe.
Lors de la création de liens symboliques, vous pouvez soit utiliser des chemins d'accès absolus :
[moi@linuxbox aire de jeux]$ ln -s /home/me/playground/fun dir1/fun-sym
[moi@linuxbox aire de jeux]$ ln -s /home/me/playground/fun dir1/fun-sym
ou des chemins relatifs, comme nous l'avons fait dans notre exemple précédent. Dans la plupart des cas, l'utilisation de chemins relatifs est plus souhaitable car elle permet de renommer et/ou de déplacer une arborescence de répertoires contenant des liens symboliques et leurs fichiers référencés sans rompre les liens.
En plus des fichiers normaux, les liens symboliques peuvent également référencer des répertoires :
[moi@linuxbox aire de jeux]$ ln -s dir1 dir1-sym
[moi@linuxbox aire de jeux]$ ls -l
Total des 16
dessinxrwxr-x | 2 | me | me | 4096 | 2016-01-15 | 15:17 | Dir1 |
lrwxrwxrwx | 1 | me | me | 4 | 2016-01-16 | 14:45 | dir1-sym -> dir1 |
dessinxrwxr-x | 2 | me | me | 4096 | 2016-01-15 | 15:17 | Dir2 |
-rw-r -r-- | 4 | me | me | 1650 | 2016-01-10 | 16:33 | amusement |
-rw-r -r-- | 4 | me | me | 1650 | 2016-01-10 | 16:33 | amusant-dur |
lrwxrwxrwx | 1 | me | me | 3 | 2016-01-15 | 15:15 | fun-sym -> fun |