GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi ‘/’ a-t-il une entrée ‘..’ ?

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.


Linux
  1. Pourquoi Sudo ignore-t-il les alias ?

  2. Curl a-t-il un délai d'attente ?

  3. Pourquoi ne puis-je pas utiliser Cd dans un script Bash ? ?

  4. Dans `while Ifs=Read..`, Pourquoi Ifs n'a-t-il aucun effet ?

  5. Pourquoi l'heure Unix commence-t-elle au 1970-01-01 ?

Pourquoi `exit &` ne fonctionne pas ?

Python a-t-il un argument argc ?

pourquoi sftp rmdir ne fonctionne-t-il pas?

Qu'est-ce qu'un GPU Matrox et pourquoi le serveur UNIX de mon université en a-t-il un ?

Pourquoi mon système n'affiche-t-il que 3,2 Go de RAM alors que j'ai définitivement 4,0 Go

Que produit pwd ?