これはいつも私を困惑させてきました。ルートディレクトリに親ディレクトリへの参照が含まれているのはなぜですか?
[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
ファイルシステムでディレクトリがどのように管理されているかを理解しています。各ディレクトリには、それ自体へのn + 2個のポインタがあります(n =ディレクトリ内のサブディレクトリの数)。直接のサブディレクトリごとに1つ、その親用に1つ、それ自体用に1つ。
しかし、/
とは何ですか の親?
承認された回答:
/..
/
を指す :
$ ls -id /
2 /
$ ls -id /..
2 /..
どちらも同じiノード番号を持っていますが、このシステムではたまたま2です。 (正確な値は重要ではありません。)
一貫性を保つために行われます。このように、..
を処理するときに、カーネルが現在どこにあるかを確認するために、カーネルにコードを含める必要はありません。 パスで。 cd ..
と言うことができます 永遠に、そして根より深くなることは決してありません。