Tohle mě vždycky mátlo. Proč kořenový adresář obsahuje odkaz na nadřazený adresář?
[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
Rozumím tomu, jak jsou v souborovém systému spravovány adresáře – každý adresář má na sebe n+2 ukazatelů (n =počet podadresářů v adresáři). Jeden pro každý bezprostřední podadresář, jeden pro jeho nadřazený adresář a jeden pro sebe.
Ale co je / 'rodič?
Přijatá odpověď:
/.. ukazuje na / :
$ ls -id /
2 /
$ ls -id /..
2 /..
Oba mají stejné číslo inodu, které je v tomto systému náhodou 2. (Na přesné hodnotě nezáleží.)
Dělá se to kvůli konzistenci. Tímto způsobem v jádře nemusí být kód ke kontrole, kde se aktuálně nachází, když zpracovává .. v cestě. Můžete říct cd .. navždy a nikdy nepůjde hlouběji než kořen.