This has always puzzled me. Why does the root directory contain a reference to a parent directory?
bob@bob:/$ 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
I understand how directories are managed in the filesystem – each directory has n+2 pointers to itself (n = number of subdirectories inside the directory). One for each immediate subdirectory, one for its parent, and one for itself.
But what is /
's parent?
Best Answer
/..
points to/
:Both have the same inode number, which happens to be 2 on this system. (The exact value doesn't matter.)
It's done for consistency. This way, there doesn't have to be code in the kernel to check where it currently is when it processes a
..
in a path. You can saycd ..
forever, and never go deeper than the root.