Posté par
IsNotGood() le 24/03/2008 à 09:34. (lien). Évalué à 7.
Merci MrLapinot, tu m'économises 3 bonnes heures de réflexion :-)
Plus précisément, car personne n'a la science infuse.
Voyons ce que ça donne avec le numéro d'inode : [admin@ici tmp]$ touch toto
[admin@ici tmp]$ ls -i toto
125403389 toto
[admin@ici tmp]$ ln toto titi
[admin@ici tmp]$ ls -i toto titi
125403389 titi 125403389 toto # même inode
[admin@ici tmp]$ ln -s toto tutu
[admin@ici tmp]$ ls -i toto tutu
125403389 toto 125403390 tutu # inode différent
[admin@ici tmp]$ mv toto tata
[admin@ici tmp]$ ls -i tata
125403389 tata
[admin@one tmp]$ cat tutu
cat: tutu: Aucun fichier ou répertoire de ce type
toto (renommé tata par la suite) et titi ont le même inode, les noms pointent le même contenu. Il y a deux noms et qu'un fichier.
La commande mv, change le nom. Le inode reste donc le même.
Un lien symbolique est un fichier spécial avec un nom de fichier. Il ne se réfère pas au contenu (l'inode) mais à un nom. Donc lorsqu'on a changé le nom de toto, le lien symbolique pointe sur un fichier qui n'existe plus (d'où le "Aucun fichier ou répertoire de ce type").
Notons que la commande rm ne supprime pas un fichier (inode) mais un nom. S'il n'y a plus de nom qui référence un inode, alors le inode est supprimé.
D'ailleurs rm utilise unlink(2) : delete a name and possibly the file it refers to
Re: Re:
Merci MrLapinot, tu m'économises 3 bonnes heures de réflexion :-)
Plus précisément, car personne n'a la science infuse.
Voyons ce que ça donne avec le numéro d'inode :
[admin@ici tmp]$ touch toto
[admin@ici tmp]$ ls -i toto
125403389 toto
[admin@ici tmp]$ ln toto titi
[admin@ici tmp]$ ls -i toto titi
125403389 titi 125403389 toto # même inode
[admin@ici tmp]$ ln -s toto tutu
[admin@ici tmp]$ ls -i toto tutu
125403389 toto 125403390 tutu # inode différent
[admin@ici tmp]$ mv toto tata
[admin@ici tmp]$ ls -i tata
125403389 tata
[admin@one tmp]$ cat tutu
cat: tutu: Aucun fichier ou répertoire de ce type
toto (renommé tata par la suite) et titi ont le même inode, les noms pointent le même contenu. Il y a deux noms et qu'un fichier.
La commande mv, change le nom. Le inode reste donc le même.
Un lien symbolique est un fichier spécial avec un nom de fichier. Il ne se réfère pas au contenu (l'inode) mais à un nom. Donc lorsqu'on a changé le nom de toto, le lien symbolique pointe sur un fichier qui n'existe plus (d'où le "Aucun fichier ou répertoire de ce type").
Notons que la commande rm ne supprime pas un fichier (inode) mais un nom. S'il n'y a plus de nom qui référence un inode, alors le inode est supprimé.
D'ailleurs rm utilise unlink(2) : delete a name and possibly the file it refers to
[ Répondre ]