質問: 「/」に「..」エントリがあるのはなぜですか? これはいつも私を困惑させてきました。ルートディレクトリに親ディレクトリへの参照が含まれているのはなぜですか? bob @ bob:/ $ ls -a 。 build 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 ..を永遠に言うことができ、ルートより深く行くことはできません。