Questo mi ha sempre lasciato perplesso. Perché la directory principale contiene un riferimento a una directory padre?
[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
Capisco come vengono gestite le directory nel filesystem:ogni directory ha n+2 puntatori a se stessa (n =numero di sottodirectory all'interno della directory). Uno per ogni sottodirectory immediata, uno per il suo genitore e uno per se stessa.
Ma cos'è /
è il genitore?
Risposta accettata:
/..
punta a /
:
$ ls -id /
2 /
$ ls -id /..
2 /..
Entrambi hanno lo stesso numero di inode, che sembra essere 2 su questo sistema. (Il valore esatto non ha importanza.)
È fatto per coerenza. In questo modo, non è necessario che ci sia codice nel kernel per controllare dove si trova attualmente quando elabora un ..
in un percorso. Puoi dire cd ..
per sempre, e non andare mai più in profondità della radice.