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.