Cela m'a toujours intrigué. Pourquoi le répertoire racine contient-il une référence à un répertoire parent ?
[email protected]:/$ ls -a . build home lib32 mnt .rpmdb sys vmlinuz .. cdrom initrd.img lib64 opt sbin tmp vmlinuz.old bin dev initrd.img.old lost+found proc selinux usr boot etc lib media root srv var
Je comprends comment les répertoires sont gérés dans le système de fichiers - chaque répertoire a n + 2 pointeurs vers lui-même (n =nombre de sous-répertoires à l'intérieur du répertoire). Un pour chaque sous-répertoire immédiat, un pour son parent et un pour lui-même.
Mais qu'est-ce que /
est parent ?
Réponse acceptée :
/..
pointe vers /
:
$ ls -id /
2 /
$ ls -id /..
2 /..
Les deux ont le même numéro d'inode, qui se trouve être 2 sur ce système. (La valeur exacte n'a pas d'importance.)
C'est fait pour la cohérence. De cette façon, il n'est pas nécessaire qu'il y ait du code dans le noyau pour vérifier où il se trouve actuellement lorsqu'il traite un ..
dans un chemin. Vous pouvez dire cd ..
pour toujours, et ne jamais aller plus loin que la racine.