web-dev-qa-db-fra.com

Pourquoi "/" a-t-il une entrée ".. '?

Cela m'a toujours perplexe. Pourquoi le répertoire racine contient-il une référence à un répertoire parent?

[.____] Bob @ Bob:/$ LS -A [.____]. Construire la maison lib32 mnt .rpmdb sys vmlinuz 
 .. cdrom initrd.img lib64 opt SBIN TMP VMLINUZ.OLD [ etc libellé média racine 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 à elle-même (n = nombre de sous-répertoires dans le répertoire). Un pour chaque sous-répertoire immédiat, un pour son parent, et un pour lui-même.

Mais comment ça / 's parent?

81
Nathan Osman

/.. 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 ne doit pas nécessairement être de code dans le noyau pour vérifier l'endroit où il est actuellement lorsqu'il traite un .. sur un chemin. Tu peux dire cd .. Pour toujours, et ne jamais aller plus profond que la racine.

72
Warren Young