Linux : comment créer un lien symbolique ?

Commandes et Système

Linux : comment créer un lien symbolique ?

I. Présentation

Dans ce tutoriel, nous allons voir comment et pourquoi créer un lien symbolique sous Linux, que ce soit entre deux fichiers ou deux répertoires.

Un lien symbolique (symlink) peut être vu ici comme un raccourci pointant vers un dossier ou un fichier sur le système. Ce dernier contient juste une référence vers le fichier cible et non les données du fichier en elles-mêmes, contrairement à un lien physique (hard link) qui est plutôt une copie conforme (noms de fichiers différents, mais même inode ou index) de son fichier cible.

Voici quelques avantages liés à l’utilisation des liens symboliques dans le cadre de l’administration d’un système sous Linux :

  • La centralisation : l’utilisation de liens symboliques permet de centraliser les fichiers de configuration des applications et du système sans les déplacer physiquement. Cela facilite l’administration et la maintenance, ce qui peut offrir un gain de temps aux administrateurs. Par exemple, un lien symbolique dans « /etc/ » peut renvoyer vers un fichier de configuration stocké ailleurs.
  • Le gain d’espace disque :  les liens symboliques, contrairement aux liens physiques, sont des raccourcis qui pointent vers un fichier sans le copier, ce qui prend moins de place sur votre disque dur. 
  • La compatibilité avec plusieurs systèmes de fichiers
  • Etc.

Version originale de l’article : 20 mars 2013

II. La syntaxe de la commande ln

Sous Linux, il est possible de créer un ou plusieurs liens vers un fichier ou vers un répertoire donné. Dans les deux cas, la syntaxe de création de liens symboliques suit la logique suivante :


Quelques explications s’imposent :

  • La commande « » est utilisée pour créer un lien
  • L’option « » permet de spécifier qu’il s’agit d’un lien symbolique
  • Le fichier ou le répertoire source est placé avant le lien dans la commande

Par ailleurs, le nom du lien doit être différent de celui de tout fichier ou dossier existant dans le répertoire de destination de ce dernier, au risque de recevoir un message indiquant que le fichier ou le dossier existe déjà.

III. Créer un lien symbolique

A. Lien symbolique vers un répertoire

On va, par exemple, créer un lien symbolique vers le dossier « meister » situé à la racine de notre système. Ce lien s’appellera « meister1 » et sera situé dans le répertoire « home » de l’utilisateur root (soit « /root »).


Ce qui donne en image :

On peut aller vérifier que tout est correct avec la commande suivante :


Le résultat est visible sur l’image ci-dessous. Le lien symbolique est représenté par une flèche « -> » mettant en évidence la cible. La lettre « l » en début de lien est également un indicateur.

On va ensuite créer un fichier nommé « test » dans le dossier source «/meister ». Puis, quand ce sera fait, on va se déplacer vers le dossier lien « meister1 » du répertoire « home » de l’utilisateur root afin de lister les fichiers. Ce sera l’occasion de constater qu’on a bien accès au fichier « test » précédemment créé depuis le dossier source, grâce à notre lien symbolique.


En image :

B. Lien symbolique vers un fichier

La démarche est exactement la même qu’avec la création d’un lien symbolique vers un répertoire.

On va d’abord créer un fichier de configuration dans le dossier « /var/lib » qu’on appellera « config1 ». On y insère ensuite le texte « ma configuration pour mon application ». On va enfin créer un lien symbolique vers notre fichier dans le répertoire « /etc » (souvent utilisé par défaut pour stocker les fichiers de configuration de nombreuses applications).


En image :

On peut vérifier le lien avec la commande suivante :


On peut encore aller plus loin en se rassurant qu’on puisse effectivement avoir accès au contenu du fichier de configuration source à partir du lien symbolique créé.


IV. Lister les liens symboliques sur Linux

On va terminer avec une astuce pour lister les liens symboliques sur une machine Linux. On peut utiliser plusieurs commandes pour cela, notamment les commandes et . L’avantage d’utiliser la commande couplée à , c’est que l’on va pouvoir lister d’autres propriétés sur les fichiers en même temps (utile pour voir la source et la destination du lien).

Voici la syntaxe à adopter :


Par exemple, pour lister tous les liens symboliques situés sous “/etc/” de façon récursive :


Quelques explications sur cette commande :

  • : liste récursivement tous les fichiers avec détails.
  • : filtre les fichiers dont la ligne commence par (indiquant un lien symbolique).

Vous allez probablement obtenir une longue liste, sous cette forme :


V. Conclusion

À la suite de ce tutoriel, vous savez désormais créer des liens symboliques vers un fichier ou un répertoire sous Linux. Cependant, le lien ne fonctionnera plus une fois qu’on a renommé ou supprimé le fichier ou le répertoire source.

SOURCE