Les liens symboliques avec le Shell Bash

Introduction aux liens symboliques

Qu’est-ce qu’un lien symbolique ?

  • Un lien symbolique (ou symlink) est un fichier spécial qui pointe vers un autre fichier ou répertoire, comme un raccourci sous Windows.
  • Un lien symbolique peut pointer vers des fichiers ou répertoires sur des systèmes de fichiers différents.

À quoi servent-ils ?

  • Organisation : Accéder rapidement à un fichier ou répertoire sans dupliquer son contenu.
  • Compatibilité : Permettre à des programmes de trouver des fichiers à un emplacement standardisé.
  • Flexibilité : Modifier la cible du lien sans toucher aux programmes qui l’utilisent.

Créer un lien symbolique avec Bash

Syntaxe de base

ln -s [fichier_cible] [nom_du_lien]

  • -s : Indique la création d’un lien symbolique.
  • [fichier_cible] : Chemin absolu ou relatif vers le fichier ou répertoire cible.
  • [nom_du_lien] : Nom du lien symbolique à créer

Exemple 1 : Lien vers un fichier

ln -s /chemin/vers/fichier.txt mon_lien.txt
  • Crée un lien nommé mon_lien.txt pointant vers /chemin/vers/fichier.txt.

Exemple 2 : Lien vers un répertoire

ln -s /chemin/vers/dossier mon_lien_dossier
  • Crée un lien nommé mon_lien_dossier pointant vers /chemin/vers/dossier.

Vérifier un lien symbolique

Afficher la cible d’un lien

ls -l [nom_du_lien]

Exemple :

ls -l mon_lien.txt

Résultat :

lrwxrwxrwx 1 user user 15 juin  10 10:00 mon_lien.txt -> /chemin/vers/fichier.txt
  • Le indique la cible du lien.

Vérifier si un fichier est un lien symbolique

file [nom_du_lien]

Exemple :

file mon_lien.txt

Résultat :

mon_lien.txt: symbolic link to /chemin/vers/fichier.txt

Supprimer un lien symbolique

Utiliser unlink

unlink [nom_du_lien]

Exemple :

unlink mon_lien.txt

Utiliser rm

rm [nom_du_lien]

  • Attention : rm supprime le lien, pas la cible.

Modifier un lien symbolique

  • Il n’existe pas de commande directe pour modifier un lien symbolique. Il faut :
  1. Supprimer l’ancien lien.
  2. Recréer un nouveau lien avec la nouvelle cible.

Bonnes pratiques et pièges à éviter

Utiliser des chemins absolus ou relatifs ?

  • Chemin absolu : Plus fiable, mais moins portable.
ln -s /home/user/dossier lien
  • Chemin relatif : Plus portable, mais dépend de l’emplacement du lien.
ln -s ../dossier lien

Éviter les boucles infinies

  • Ne créez pas de lien symbolique qui pointe vers lui-même ou vers un parent qui le contient.

Permissions et droits

  • Les permissions d’un lien symbolique ne comptent pas : ce sont celles de la cible qui s’appliquent.

Retour en haut