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.txtpointant 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_dossierpointant 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 :
rmsupprime le lien, pas la cible.
Modifier un lien symbolique
- Il n’existe pas de commande directe pour modifier un lien symbolique. Il faut :
- Supprimer l’ancien lien.
- 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.