/
ディレクトリ内で使用する場合、ls -a
結果には含まれ.
、..
ディレクトリ自体へのポインタであるの存在は理解できます。の親ディレクトリがないのに、ディレクトリにが.
あるというのはどういう意味ですか?..
/
/
答え1
多くのソフトウェアは、ない実際には POSIX.1 によって保証されていますが、UNIX システムでは伝統的にそうであり、多くの UNIX 文献にも次のように記されています (UNIX 文献の 1 つを引用します)。
すべてのディレクトリには、ドットとドットドット (.
および..
) というファイル名が含まれており、その inode 番号はそれぞれディレクトリとその親ディレクトリの inode 番号です。[…]プログラムは、ルート ディレクトリのと がファイル システムのルート inode 番号を持つmkfs
ようにファイル システムを初期化します。.
..
— モーリス・J・バッハ(1986年)。UNIX オペレーティング システムの設計。 プレンティス・ホール。p. 73
例えば、古いgetcwd()
ライブラリ関数(特別なカーネルサポートを提供していないシステム上)はこれに依存していつ止めるかを知る現在のディレクトリ名を作成するときに、エントリのチェーンをトレースします..
。自身の親であるディレクトリに到達するか、またはそこに到達できないと停止します..
。
ルートディレクトリが(少なくともアプリケーションモードのプログラムに関しては)登場システムAPIを通して見たように、..
エントリの多くは、毎ディレクトリには があり..
、..
ルートにループがあることで、ルートにいることを検出できます。
POSIX.1は実際にはルートディレクトリに があることを保証しておらず..
、単に次のように規定しているだけである。プログラムはループの可能性を考慮する必要がある..
ルートディレクトリにがあります。これは、非UNIXシステムでもPOSIX準拠を可能にするためです。不在は..
ディレクトリがルートディレクトリであることを示します。そして、Bach自身が述べているように、ディレクトリが存在するシステムもあります。その上POSIX.1では、ルートは、で始まる絶対パス名の議論で許可されています。二スラッシュ (Microsoft ローカル エリア ネットワーク システムで使用される Universal Naming Convention に類似)。
ただし、Linux (および Ubuntu Linux) は、UNIX パラダイムのより厳格な保証を提供します。
答え2
./
非常に簡単に言えば、ファイルディレクトリによって、このフォルダ、一方../
、ファイルの保存場所(たとえば、私がディレクトリ にいる場合user/home/me/Desktop
、 は../
私を に移動します/user/home/me
)。