2016-12-19 11 views
5

われわれ皆知っています。すべてのUnixディレクトリには、特別なディレクトリ(current(。)& parent(..)が含まれています。また、Unixのトップレベルのルートディレクトリは "/"と呼ばれます。 Iは、ルートディレクトリに試みルートディレクトリの親ディレクトリ一覧

、ルートディレクトリに

$ cd .. 

を実行

$ ls -ia 
     2 .      
     2 .. 
     3963 bin 

............... 

両方(。)&(..)同じinode番号を有する

&で終了します同じ場所。

私の質問は、なぜルートディレクトリにも特別なディレクトリリスト(..)が含まれているのですか?ルートディレクトリにリストする(..)必要は何ですか?

+0

**整合性**は十分な理由ですか? – FDavidov

+0

http://unix.stackexchange.com/questions/125972/cd-on-root-folderを複製し、codeforesterに同意すると、これはUNIXファイルシステムの方法で選択されました。これは均一性の望ましい向上です。 –

答えて

4

単純に、これはコンベンションの一貫性を維持するためのものです。 POSIXのdefintion

3.144 Empty Directory

ほとんどで、含まれているディレクトリによる


、ドットと ドットドットのためのディレクトリエントリ、および以外のそれに正確に一つのリンクを(持っています独自のドットエントリ、存在する場合は )、ドットドット。この定義は、すべてのファイルコマンドのPOSIX記述で異なるフレーズを使用して繰り返されます。スーパーanswerから

:(空のディレクトリのための複雑な定義は上記

これは明らかに、この変な慣習の背後に であり、その目的はいなくても、スラッシュのために、ルールに任意の 例外を回避することです/)すなわちルートディレクトリ。

+0

私がGoogleから得たもう1つの答えは、ネットワーク化されたUNIXやUnixのような初期の概念です。だから、/ hostnameはルートディレクトリと考えられていました。そのようなネットワークでは、path/hostnameを使って他のUNIXシステムにアクセスできます。 – engineer2014

1

これは、ディレクトリのUnix標準です。すべてのディレクトリには、自身(。)と親(..)のエントリがあります。これらの特別なエントリは、ディレクトリトラバーサルに使用されます。 "keep it simple"ポリシーでは、ルートディレクトリは他のディレクトリと同じ基本構造を持ちます。

関連する問題