/ディレクトリに..があるのはなぜですか?


7

いる間/ディレクトリおよび使用ls -a 結果が含まれています.し、..

.ディレクトリ自体へのポインタであるの存在を理解できます。の親ディレクトリが存在しないときにディレクトリ..内にあるという意味は何ですか?//


ここでトピックについて説明します:superuser.com/questions/186184/the-parent-of-the-root-directory
darksky

回答:


8

多くのソフトウェアは仮定に基づいて動作しますが、実際にはPOSIX.1によって保証されているわけではありませんが、伝統的にUNIXシステムの場合であり、多くのUNIX文学にinわれています(そのようなUNIX文学の一部を引用すると):

すべてのディレクトリには、ドットとドットドット(.および..)のファイル名が含まれており、それぞれのiノード番号は、ディレクトリとその親ディレクトリのiノード番号です。[…]プログラムmkfsはファイルシステムを初期化して、ルートディレクトリの.および..がファイルシステムのルートiノード番号を持つようにします。

—モーリスJ.バッハ(1986)。UNIXオペレーティングシステムの設計。 プレンティスホール。p。73

例:古いgetcwd()ライブラリ関数(特別なカーネルサポートを提供していないシステム)は、現在のディレクトリ名を作成するときにエントリのチェーンのトレースを停止するタイミングを知るためにこれに依存し..ます。自身の親であるディレクトリに到達するか、に移動できないときに停止し..ます。

だから、ルートディレクトリを持っていることを理由(アプリケーションモードのプログラムが懸念している限り、または少なくとも表示され、システムのAPIを介して見られるように持っている)..エントリは多くのものを仮定に基づいていることであるすべてのディレクトリがあり..、かつその..ループであるルートには、1つのルートにあることを検出するために使用することができます。

POSIX.1は、ルートディレクトリにしているという事実の保証ではない..、単にことを指定した場合、プログラムがループの可能性を考慮しなければならないがあり..、ルートディレクトリに。これは、UNIX以外のシステムもPOSIXに準拠できるようにするためです。ディレクトリがルートディレクトリであること..示していないファイルシステムがあります。また、バッハ自身が説明しているように、ルートのにディレクトリがあるシステムがあります。POSIX.1では、2つのスラッシュで始まる絶対パス名の議論を許可しています(Microsoftローカルエリアネットワークシステムで使用されるUniversal Naming Conventionと同様)。 )。

ただし、Linux(およびUbuntu Linux)は、UNIXパラダイムのより厳密な保証を提供します。


-1

非常に単純:ファイルディレクトリの手段によって、./意味、このフォルダをしながら、../手段ファイルがある(例えば、私はディレクトリにいるよuser/home/me/Desktop、その後、../に私をもたらすでしょう/user/home/me)。


OK。これ//../、ポイントする親ディレクトリがない質問にどのように答えますか?
ムル

あなたの質問がよく編集されたので、私はあなたが実際に尋ねたものを理解します;)<br>それについて、JdeBPの答えはうまく説明します。
ツァヒレー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.