「/」に「..」エントリがあるのはなぜですか?

「/」に「..」エントリがあるのはなぜですか?

これはいつも私を慌てた。ルートディレクトリに親ディレクトリへの参照が含まれているのはなぜですか?

bob@bob:/$ ls -a
。ホーム lib32 mnt .rpmdb sys vmlinuz ビルド
..cdrom initrd.img lib64 opt sbin tmp vmlinuz.old
bin dev initrd.img.old 紛失 + proc selinux usr 発見
起動など lib メディアルート srv var

私はファイルシステムでディレクトリがどのように管理されているかを理解しています。各ディレクトリには、それ自体へのn + 2ポインタがあります(n =ディレクトリ内のサブディレクトリの数)。各直接サブディレクトリに対して1つ、親ディレクトリに対して1つ、それ自体に対して1つずつ。

/しかし、その親は何ですか?

ベストアンサー1

/..以下を指します/:

$ ls -id /
2 /
$ ls -id /..
2 /..

どちらも同じinode番号を持ち、このシステムでは正確に2です。 (正確な値は重要ではありません。)

これは一貫性のために行われます。これにより、カーネルがパス..内でaを処理するときに現在の場所を確認するためにカーネルにコードを追加する必要がなくなります。永遠だと言えますが、cd ..根より深くはありません。

おすすめ記事