Question 1Comment est-ce affiché dans ls -l après que tu lances ln -s target.txt link.txt ?
Liens symboliques et liens physiques — ln
Crée un lien symbolique qui stocke un chemin avec ln -s target.txt link.txt et vérifie le -> dans ls -l, puis crée un lien physique vers le même contenu avec ln base.txt hard.txt ; vois la différence avec des schémas et un terminal en navigateur.
Liens symboliques — ln -s
Un lien permet d'atteindre le même fichier sous un autre nom. Tu crées un lien symbolique avec ln -s target name, et c'est un fichier spécial qui stocke le chemin (l'emplacement) de la cible. Quand tu ouvres name, il suit automatiquement le chemin stocké jusqu'à la target. Dans ls -l, la ligne du lien montre où il pointe, sous la forme name -> target.
| Syntaxe | Effet |
|---|---|
ln -s target name | -s (symbolic) crée un lien symbolique qui est un alias basé sur un chemin |
ls -l | Vérifie où il pointe grâce à l'affichage name -> target |
ln target alias | Crée un lien physique pointant vers le même contenu |
| Symbolique vs physique | Symbolique = un fichier spécial stockant le chemin de la cible / Physique = un alias vers le même contenu |
| Quand la cible est supprimée | Symbolique = perd sa cible et se casse / Physique = le contenu reste |
ln -s crée link.txt, un fichier spécial qui stocke le chemin target.txt. ls -l l'affiche sous la forme link.txt -> target.txt, et cat link.txt suit ce chemin pour lire le contenu du vrai fichier target.txt.printf 'data\n' > target.txt # Crée le fichier cible
ln -s target.txt link.txt # Crée un lien symbolique
ls -l # Vérifie link.txt -> target.txt
cat link.txt # Affiche le contenu de target.txt
Liens physiques — ln
Sans -s, ln target alias crée un lien physique (hard link). Alors qu'un lien symbolique est un fichier spécial qui stocke un chemin vers la cible, un lien physique est un autre nom pointant vers le même contenu. Ouvrir l'un ou l'autre nom donne un contenu identique, et dans ls -l un lien physique n'affiche aucune flèche — il ressemble à un fichier ordinaire. Garde la distinction en tête : symbolique = un fichier spécial stockant le chemin de la cible, physique = un alias vers le même contenu.
ln -s crée sym, qui stocke un chemin vers le vrai fichier, tandis que ln crée hard, un alias vers le même contenu. Les deux affichent shared avec cat, mais sym lit via le chemin et hard lit le contenu directement.printf 'shared\n' > base.txt # Crée le fichier cible
ln base.txt hard.txt # Crée un lien physique
ls -l # hard.txt est listé sans flèche
cat hard.txt # Affiche le même contenu que base.txt
Ce qui se passe quand tu supprimes la cible
Comme un lien symbolique est un fichier spécial qui stocke un chemin vers la cible, il perd ce vers quoi il pointe dès que la cible disparaît. Comme un lien physique est un autre nom pointant vers le même contenu, le contenu reste même après la disparition du nom d'origine. Supprime la cible et vois la différence par toi-même.
rm orig.txt supprime le vrai fichier, sl.txt, qui ne stocke qu'un chemin, devient un lien cassé, tandis que hl.txt, qui partage le contenu, affiche encore son contenu avec cat.printf 'v\n' > orig.txt # Crée le fichier cible
ln -s orig.txt sl.txt # Lien symbolique
ln orig.txt hl.txt # Lien physique
rm orig.txt # Supprime la cible
cat sl.txt # Perd sa cible et échoue
cat hl.txt # Le contenu reste et peut être affiché
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Laquelle des propositions suivantes décrit correctement la différence entre liens symboliques et physiques ?
Question 3Après que tu supprimes le fichier cible avec rm, pour lequel cat réussit-il encore ?