GNU/Linux >> Linux の 問題 >  >> Linux

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

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

[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 ..と言うことができます 永遠に、そして根より深くなることは決してありません。


Linux
  1. Unix、「/」と「//」で始まるパスの違いは?

  2. 新しいディレクトリに何かが追加される前に、ハードリンクカウントが2になるのはなぜですか?

  3. `while Ifs =Read ..`で、なぜIfsは効果がないのですか?

  1. Vsftpdはディレクトリのコンテンツをリストしませんか?

  2. Pythonにはargc引数がありますか?

  3. pwd は何を出力しますか?

  1. sudoがエイリアスを無視するのはなぜですか?

  2. Curlにはタイムアウトがありますか?

  3. BashスクリプトでCdを使用できないのはなぜですか?