「。」はいつ dirリストのエントリと「..」エントリは異なりますか?(これらは2つの異なるディレクトリを表していると理解していますが、デフォルトのdirコマンドで常に同じ日付と時刻で同じリストを表示します。違いはありますか?)
「。」はいつ dirリストのエントリと「..」エントリは異なりますか?(これらは2つの異なるディレクトリを表していると理解していますが、デフォルトのdirコマンドで常に同じ日付と時刻で同じリストを表示します。違いはありますか?)
回答:
実際のリストに関して:
27/08/2011 11:23 <DIR> .
27/08/2011 11:23 <DIR> ..
両方に現在のディレクトリの日付を使用しています。C:\Users\Chris
(たとえば)で開始する場合、上記を取得できます。しかし、あなたが上に行くとき、あなたはC:\Users
得る:
26/07/2011 21:20 <DIR> .
26/07/2011 21:20 <DIR> ..
したがって、..
最初のケースの日付は.
、2番目のケースの日付と同じではありません。それらは同じディレクトリである(またはそうあるべきである)ため、明らかに間違っています。ただし、.
および..
は現在および親ディレクトリへの参照であり、両方が同時に作成されます-ディレクトリが作成されたときに-それは実際に正しいです(これを指摘してくれたSynetech incに感謝します)
タイムスタンプが異なるのは、.
どちらかまたは..
再作成された場合のみです。
元の答え:
.
現在のディレクトリを意味します。
..
親ディレクトリを意味します。
したがって、通常の状況では、それらは常に異なります。
同じ結果が得られるのは、ディスクのルートにいるときだけです。で、同じ出力C:\>
dir .
をdir ..
生成します。
..
ています。親ディレクトリのタイムスタンプが与えられず、現在のディレクトリのタイムスタンプが与えられるからです。これは、ディレクトリの作成時に.
と..
が作成されるためです。
いいえ、それらは常に同じです。これらはファイルではなくディレクトリであるため、わずかに異なる方法で処理されます(実際、通常のディレクトリではなく、eL01 が示すようにポインタであるため、通常のディレクトリとはさらに異なる方法で処理されます)。
ディレクトリを作成すると、2つのエントリが自動的に作成されます。
.
新しく作成されたディレクトリを指します..
新しいディレクトリの親を指します明らかに.
、ディレクトリが作成された現在の日付と時刻があり、親ディレクトリのタイムスタンプがにコピーされるのは論理的に見えるかもしれ..
ませんが、それは動作しません。新しいディレクトリを作成すると、両方のポインターが現在の日付と時刻を受け取ります。これは、DOSからFAT *とNTFSの両方でWindows 7を使用する場合です。
..
ます。それは親のタイムスタンプを持っているでしょう。(いつか新しいファイルシステム(WinFS?)が最終的にそのようになったとしても驚かないでしょう)。
私は実際に証明することはできませんが、私は思う:すべてのディレクトリには、ディレクトリとそれに含まれるファイルのリストがあります。相対パスを使用できるようにするには、すべてのディレクトリに2つのポインターが必要です(1つはそれ自体.
へ、もう1つは1レベル上のディレクトリー)。..
これら2つのポインターは、ディレクトリー自体の作成時に作成されます。
したがって、..
実際のタイムスタンプは上のディレクトリのタイムスタンプではなく、上のディレクトリへのポインタのタイムスタンプです。
..
現在のディレクトリが作成されたときのエントリは、現在の日付と時刻のタイムスタンプが与えられています。