Prenez les commandes : ln

Linux Gazette n°97 - Décembre 2003

Staff


La commande ln crée des pseudonymes pour des fichiers afin de pouvoir y accéder par des noms différents. Ces pseudonymes sont appelés liens. La commande peut se présenter sous deux formes différentes et permet de créer deux types de liens différents. Commençons par décrire les deux formes de la commande.

ln [options] chemin_existant [nouveau_chemin]

ln [options] chemins_existants répertoire

Dans la première forme, un nouveau nom est créé appelé nouveau_chemin, qui est un pseudonyme pour chemin_existant. La raison pour laquelle on le désigne sous le nom de chemin est qu'il peut s'agir d'un nom de chemin complet vers un fichier. En d'autres termes, il n'a pas à spécifier un fichier dans le répertoire actuel.

Dans la seconde forme, le dernier argument est considéré comme un nom de répertoire et tous les autres arguments sont des chemins vers des fichiers existants. Un lien pour chaque fichier existant est créé dans le répertoire spécifié avec le même nom de fichier que les fichiers existants.

Voici quelques exemples :

Créer un lien nommé mon_fichier dans le répertoire actuel vers le fichier /home/guillaume/son_fichier :

ln /home/guillaume/son_fichier mon_fichier

Créer un lien comme précédemment, mais dans /home/joel/mon_fichier :

ln /home/guillaume/son_fichier /home/joel/mon_fichier

Créer un lien comme précédemment, mais il est nommé son_fichier et créé dans le répertoire actuel :

ln /home/guillaume/son_fichier

Voici un exemple de la seconde forme où des liens vers chien, chat et vache du répertoire actuel sont créés dans /home/joel/ :

ln chien chat vache /home/joel

Tous les liens créés jusqu'à présent sont ce qu'on appelle des liens physiques. Tout ce que cela signifie est que le nouveau pseudonyme a exactement les mêmes propriétés que le nom d'origine. En fait, le système ne fait pas de distinction entre eux. Par exemple, vous pourriez renommer le fichier porc en poulet avec la séquence de commandes suivante :

ln porc poulet rm porc

La première ligne crée le pseudonyme poulet pour porc et la seconde supprime porc. Le système de fichiers est suffisamment intelligent pour savoir que tant qu'au moins un nom pointe sur le fichier, ce dernier ne doit pas être supprimé.

Il existe cependant un second type de lien appelé lien symbolique qui a des propriétés tout à fait différentes. Autrement dit, plutôt que de pointer sur le fichier lui même, il pointe sur le nom du fichier (élément du répertoire). C'est le seul type de lien qui peut être utilisé entre systèmes de fichiers. Pour créer un lien symbolique, tout se passe comme précédemment, sauf que vous devez inclure l'option -s. Par exemple, pour créer un lien symbolique nommé poulet qui pointe sur porc, vous écrirez :

ln -s porc poulet

La seule façon dont vous verrez que poulet est un lien symbolique est d'utiliser la commande ls -l (ls -l poulet). La sortie de la commande ressemble beaucoup à celle-ci :


lrwxrwxrwx    1 joel   users          3 2003-11-18 17:26 poulet -> porc

Le premier caractère (l) indique qu'il s'agit d'un lien et la partie poulet -> porc indique que poulet est un pointeur sur porc.

Si vous supprimez à présent le fichier porc (rm porc), le lien poulet existe encore, mais toute tentative de le référencer (par exemple cat poulet) donne une erreur « fichier non trouvé ».

Comme pour la plupart des commandes Linux, il y a beaucoup d'autres options et beaucoup d'autres choix. La saisie de ln --help vous permet d'afficher la liste complète des options.

Copyright © 2003, Staff

Copying license http://www.linuxgazette.com/copying.html

Paru dans le n°97 de la Linux Gazette de décembre 2003.

Traduction française par Gabriel Giovannetti .

Relecture de la traduction française par Joëlle Cornavin .