Débutant

Maîtriser les liens symboliques et physiques sous Linux avec ln

Apprenez à créer, lire et sécuriser liens symboliques et liens physiques sous Linux avec ln, permissions, casse et bonnes pratiques.

Maîtriser les liens symboliques et physiques sous Linux avec ln
Difficulté
Facile

Un lien symbolique est un raccourci vers un chemin, alors qu’un lien physique est un second nom pour le même fichier sur le disque. Pour les distinguer sans vous tromper, retenez ceci : le lien symbolique peut casser si sa cible bouge, tandis que le lien physique reste valide tant qu’au moins un nom du fichier existe.

Ce guide montre comment créer ces liens avec ln, les lire avec ls -l, comprendre l’effet des permissions et éviter les cas qui cassent le plus souvent : mauvais chemin, mauvais répertoire, casse incorrecte et tentative de lien physique là où Linux ne l’autorise pas.

Prérequis

Vous avez accès à un terminal Linux et aux commandes ln, ls, stat et readlink. Les exemples supposent un shell courant comme Bash et un système de fichiers sensible à la casse, ce qui est le comportement habituel sous Linux.

Matériel nécessaire

  • Un terminal Linux
  • La commande ln
  • Les commandes ls, stat et readlink

Étapes

  1. Créer un fichier de test

    Commencez dans un dossier vide pour voir clairement ce qui se passe. Créez un fichier simple avec :

    mkdir -p ~/demo-liens
    cd ~/demo-liens
    echo "bonjour" > original.txt
  2. Créer un lien symbolique

    Un écran d’ordinateur avec un terminal sombre, une main sur le clavier, montrant la création d’un lien symbolique sans texte lisible.

    Créez un lien symbolique avec ln -s cible lien. Par exemple :

    ln -s original.txt raccourci.txt

    Ici, raccourci.txt ne contient pas les données du fichier : il mémorise le chemin original.txt.

  3. Créer un lien physique

    Poste de travail Linux en gros plan avec un terminal affiché à l’écran, illustrant la création d’un lien physique sans texte lisible.

    Créez un lien physique avec ln cible lien, sans -s. Exemple :

    ln original.txt copie-liee.txt

    Cette fois, original.txt et copie-liee.txt désignent le même contenu sur le disque. Modifier l’un modifie ce que vous lirez via l’autre.

  4. Lire les liens avec ls -l

    Affichez le dossier avec :

    ls -l

    Un lien symbolique apparaît avec un l au début des permissions et une flèche, par exemple raccourci.txt -> original.txt. Les liens physiques, eux, ressemblent à des fichiers ordinaires.

  5. Vérifier la cible réelle

    Utilisez readlink pour lire ce qu’un lien symbolique contient, puis stat pour comparer les métadonnées. Essayez :

    readlink raccourci.txt
    stat original.txt
    stat copie-liee.txt
    stat raccourci.txt

    Si original.txt et copie-liee.txt ont le même inode, vous avez bien un lien physique. Avec le lien symbolique, readlink montre surtout le chemin enregistré.

  6. Tester l’effet des permissions

    Affichez d’abord les permissions avec :

    ls -l original.txt raccourci.txt copie-liee.txt

    Pour l’accès au contenu, ce sont surtout les permissions du fichier cible qui comptent. Si vous retirez la lecture sur original.txt, lire via le lien symbolique ou le lien physique sera également affecté.

    chmod u-r original.txt
    ls -l original.txt raccourci.txt copie-liee.txt
  7. Déplacer la cible pour repérer un lien cassé

    Écran affichant un terminal après le déplacement de la cible, illustrant un lien symbolique cassé sans texte lisible.

    Renommez maintenant le fichier original :

    mv original.txt original-renomme.txt
    ls -l

    Le lien symbolique raccourci.txt devient cassé, car il pointe encore vers original.txt. Le lien physique copie-liee.txt, lui, reste lisible, car il désigne toujours le même contenu.

  8. Choisir un chemin absolu ou relatif

    Créez deux liens symboliques pour comparer. Depuis ~/demo-liens, essayez :

    ln -s /home/$USER/demo-liens/original-renomme.txt absolu.txt
    ln -s original-renomme.txt relatif.txt

    Le lien absolu reste correct si vous lisez le lien depuis n’importe où, tant que la cible ne change pas d’emplacement. Le lien relatif est souvent plus robuste quand vous déplacez ensemble tout un dossier vers un autre emplacement.

  9. Respecter la casse des noms

    Sous Linux, Fichier.txt et fichier.txt sont généralement deux noms différents. Testez-le avec :

    ln -s Original-Renomme.txt mauvais-lien.txt
    ls -l mauvais-lien.txt
    cat mauvais-lien.txt

    Si le vrai fichier s’appelle original-renomme.txt, ce lien sera cassé. Une simple différence de majuscule ou de minuscule suffit.

  10. Remplacer un lien proprement

    Quand un lien existe déjà, ne forcez pas sans vérifier. Contrôlez d’abord la cible actuelle avec ls -l ou readlink, puis recréez le lien si besoin :

    rm raccourci.txt
    ln -s original-renomme.txt raccourci.txt

    Cette méthode est simple et explicite pour un débutant. Elle évite d’écraser par erreur un vrai fichier qui porterait le même nom que le lien attendu.

Erreurs fréquentes & dépannage

Confondre cible et nom du lien est l’erreur la plus fréquente avec ln. La syntaxe reste ln source destination pour un lien physique, et ln -s cible lien pour un lien symbolique.

Oublier le répertoire courant casse souvent les liens symboliques relatifs. Si vous créez un lien depuis un autre dossier, le chemin relatif est interprété depuis l’emplacement du lien, pas depuis l’endroit où vous pensez être arrivé ensuite.

Créer un lien physique entre deux systèmes de fichiers ne fonctionne pas. Si ln échoue dans ce cas, utilisez plutôt un lien symbolique ou copiez le fichier selon votre besoin.

Diagnostiquer un faux problème de permissions fait perdre du temps. Quand un lien symbolique ne marche pas, vérifiez d’abord que la cible existe encore et que sa casse est exacte.

Astuces & pour aller plus loin

Utilisez readlink pour les liens symboliques cassés. C’est souvent la commande la plus rapide pour voir le chemin enregistré et repérer une faute de nom.

Utilisez stat pour confirmer un lien physique. Si deux fichiers ont le même inode, ils pointent vers le même contenu.

Préférez les liens relatifs dans un dossier de projet déplacé en bloc. Préférez les liens absolus quand vous voulez viser un emplacement fixe du système.

Questions fréquentes

Comment savoir rapidement si un fichier est un lien symbolique ?

Utilisez ls -l. Si la première lettre des permissions est l et qu’une flèche -> apparaît, c’est un lien symbolique.

Pourquoi mon lien symbolique existe mais ne fonctionne pas ?

Le cas le plus courant est une cible déplacée, supprimée ou mal orthographiée. Vérifiez le chemin avec readlink, puis comparez-le au vrai nom du fichier avec ls.

Puis-je créer un lien physique vers un dossier ?

En pratique, non pour un usage courant sous Linux. Les liens physiques servent surtout pour des fichiers sur le même système de fichiers.

Supprimer un lien physique supprime-t-il le contenu ?

Supprimer un seul nom ne supprime pas forcément les données. Le contenu reste accessible tant qu’au moins un autre lien vers ce fichier existe.

Conclusion

Pour débuter sans erreur, retenez une règle simple : choisissez un lien symbolique si vous avez besoin d’un raccourci souple vers un chemin, et un lien physique si vous avez besoin d’un second nom pour le même fichier sur le même système de fichiers. Avant d’accuser les permissions, vérifiez toujours la cible réelle, la casse du nom et le type de lien avec ls -l, readlink et stat.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire