Das hat mich immer verwundert. Warum enthält das Stammverzeichnis einen Verweis auf ein übergeordnetes Verzeichnis?
[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
Ich verstehe, wie Verzeichnisse im Dateisystem verwaltet werden – jedes Verzeichnis hat n+2 Zeiger auf sich selbst (n =Anzahl der Unterverzeichnisse innerhalb des Verzeichnisses). Eines für jedes unmittelbare Unterverzeichnis, eines für sein übergeordnetes Verzeichnis und eines für sich selbst.
Aber was ist /
Eltern?
Akzeptierte Antwort:
/..
zeigt auf /
:
$ ls -id /
2 /
$ ls -id /..
2 /..
Beide haben dieselbe Inode-Nummer, die auf diesem System zufällig 2 ist. (Der genaue Wert spielt keine Rolle.)
Es dient der Konsistenz. Auf diese Weise muss kein Code im Kernel vorhanden sein, um zu prüfen, wo er sich gerade befindet, wenn er einen ..
verarbeitet in einem Weg. Sie können cd ..
sagen für immer und niemals tiefer als die Wurzel.