Bases de Linux et de la ligne de commande
$ echo hello > a.txt
$ ln a.txt h.txt
$ ln -s a.txt s.txt
$ rm a.txt
$ cat h.txt
$ cat s.txtSi l'on exécute dans l'ordre les commandes ci-dessus, quel est le résultat des deux dernières commandes cat ?
- Ah.txt et s.txt affichent tous deux hello
- Bh.txt donne une erreur indiquant que le fichier est introuvable, et s.txt affiche hello
- Ch.txt affiche hello, et s.txt donne une erreur indiquant que le fichier est introuvable
Afficher la réponse et l'explication
Réponse : C. h.txt affiche hello, et s.txt donne une erreur indiquant que le fichier est introuvable
Un lien physique créé avec ln est un nom supplémentaire qui désigne le même inode (l'enregistrement numéroté qui gère le contenu et les attributs d'un fichier) que le fichier d'origine. rm a.txt ne supprime que le nom a.txt ; comme le nom h.txt subsiste, le contenu n'est pas effacé et cat h.txt affiche hello. Un lien symbolique créé avec ln -s est un fichier distinct dont le contenu est le chemin « a.txt » : une fois a.txt supprimé, il n'y a plus rien à suivre et cat s.txt donne l'erreur « No such file or directory ». Un lien symbolique dont la cible a disparu reste ainsi en place sous la forme d'un lien cassé.
Continuer : 9 autres questions sur Bases de Linux et de la ligne de commande