私が読んでいるこれ私は質問し、各ディレクトリに表示される内容が正確に何を意味するのか、..
そして.
私のディレクトリをどのように追加できるのか疑問に思い始めました。...
これは、たとえば、私の親ディレクトリの親ディレクトリ、または代わりに私のホームディレクトリだけを意味できますが、~
これは可能ですか?私はUbuntuに興味がありますが、この機能は私が知っているすべてのプラットフォームで一貫しているので、すべてのLinuxバージョンで似ています。
編集する:...
助けてくださる皆さんに感謝します。しかし、私は各アプリに表示される全体的な../..
概念.
とコンテンツを厳密に置き換えることにあまり興味がありません..
。各スクリプト/アプリで使用できる独自の実装方法が気になるだけです。プログラムの表記法と上記の例は、どちらもほとんどの人にとって十分な知識があるため、説明する最も簡単な方法です。
答え1
.
これは..
オペレーティングシステムによって実装されるものです。実際には、他のディレクトリと同様に、ディスクファイルシステム構造に存在していても特別に実装されていても、これはユーザーにとって重要ではありません。同様のものを実装するには、...
ファイルシステムドライバ(またはオペレーティングシステムの一般的なファイルシステム処理コード)で実装する必要があります。 LinuxでFUSEを試すことができるようです。
~
まったく異なる点は、完全にユーザースペース構成(最初はホームディレクトリの概念など)であり、通常シェルによって実装されていますが、一部(ほとんどすべてではない)他のプログラムにも知られています。
答え2
重要な要約:...
。../..
詳細:
.
..
物理ディレクトリと(主に)上位ディレクトリを表すために使用される規則。 (主に/
それがまさにそれ..
だからです.
)。
open(2)
これらの規則は、などの内部Unix関数で使用されますls(1)
。
すべてのプログラミング言語でopen("./foo.txt")
または(*)を使用すると、それぞれ現在のディレクトリまたは隣接するディレクトリで開かれますopen("../bar/foo.txt")
。foo.txt
bar
(*) アクセスモードを省略しました。
ls -a
出力.
と..
現在のディレクトリと親ディレクトリのルールとして処理します。
~
は特定のシェルの習慣です(bash
私がksh
考えるには他にもたくさんあります)。 bashはデフォルトの~
パス置換を介してそれを処理します。
open('~')
というファイルを開こうとすることに注意してください'~'
。
また、いわゆるファイルとディレクトリが作成さtouch ...
れることに注意してください。mkdir ...
...
.NETに変換するには、独自のシェルを作成する必要があります../..
。