next up previous contents Next: Liens physiques. Up: Liens symboliques et physiques. Previous: Liens symboliques et physiques.   Table des matières  

16.1 Liens symboliques.

Pour montrer ce qu'est un lien symbolique, essayez les commandes suivantes:

touch mon_fichier

ln -s mon_fichier lien_fichier

ls -al

cat > mon_fichier

quelques

lignes

de texte

^D

cat mon_fichier

cat lien_fichier 



Notez bien que le résultat de la commande ls -al montre qu'il y a une lettre l tout à gauche de la ligne correspondant à lien_fichier et qu'un tiret (-) caractérise le fichier mon_fichier. Ceci indique que lien_fichier est un lien symbolique (symbolic link, symlink ou soft-link) associé à un autre fichier.

Un lien symbolique ne contient pas de données en soi car c'est une référence à un autre fichier. Il peut même contenir une référence à un répertoire. Dans les deux cas, les programmes agissant sur le lien symbolique manipuleront le fichier ou le répertoire vers lequel le lien pointe.

Essayez à présent:

mkdir repertoire

ln -s repertoire lien_repertoire

ls -al .

touch ./repertoire/fichier1

touch ./repertoire/fichier2

ls -al ./repertoire

ls -al ./lien_repertoire 



Le répertoire lien_repertoire est un lien symbolique pointant vers repertoire et apparaît comme une réplique de ce dernier. A nouveau, lien_repertoire ne consomme pas d'espace mémoire supplémentaire. Un programme lisant le lien n'est pas ``conscient'' qu'il lit un répertoire différent de repertoire.

Les liens symboliques peuvent aussi être copiés et retenir leur valeur:

cp lien_repertoire /

ls -al /

cd /lien_repertoire 



Vous avez copié le lien dans le répertoire racine /. Cependant, ce lien pointe selon un chemin relatif vers repertoire (qui est dans le même répertoire que le lien). Or, repertoire ne se trouve pas dans /, d'où l'émission d'une erreur.

Essayez maintenant:

rm -f repertoire /lien_repertoire

ln -s `pwd`/repertoire lien_repertoire

ls -al 



A présent, vous pouvez observer que lien_repertoire possède un chemin absolu. Vous pouvez exécuter:

cp lien_repertoire /

ls -al /

cd /lien_repertoire 



et désormais, cela fonctionne.

Un des usages courants des liens symboliques est de permettre aux systèmes de fichiers d'être montés (mounted) à partir d'un répertoire différent (voir la section 20.4). Par exemple, vous pourriez disposer d'un répertoire de grande taille devant être réparti sur plusieurs disques physiques. Par souci de clarté, vous pouvez monter les disques comme /disk1, /disk2, etc., et ensuite lier les différents sous-répertoires de manière à disposer de tout l'espace nécessaire.

Un autre exemple est le lien de /dev/cdrom à /dev/hdc (disons), si bien que les programmes accédant au fichier du périphérique /dev/cdrom (voir le chapitre 19) accèdent en réalité au disque IDE.


next up previous contents Next: Liens physiques. Up: Liens symboliques et physiques. Previous: Liens symboliques et physiques.   Table des matières  
1-01-2006