Sind die Einträge "." Und ".." in einem Verzeichnis immer gleich?

13

Wann würde das "." und ".." Einträge in einem Verzeichnis unterscheiden sich? (Ich verstehe, dass sie zwei verschiedene Verzeichnisse darstellen, aber sie werden immer mit dem gleichen Datum und der gleichen Uhrzeit in einem Standard-Verzeichnisbefehl identisch aufgelistet. Unterscheiden sie sich jemals?)

Zeugenschutz ID 44583292
quelle
1
Können Sie ein Beispiel geben (vielleicht mit einem Screenshot)
ChrisF

Antworten:

26

Bezüglich der tatsächlichen Auflistung:

27/08/2011  11:23    <DIR>          .
27/08/2011  11:23    <DIR>          ..

Sie verwenden für beide das Datum des aktuellen Verzeichnisses. Wenn Sie in C:\Users\Chris(sagen wir) anfangen , erhalten Sie möglicherweise das Obige. Aber wenn du aufsteigst, C:\Usersbekommst du:

26/07/2011  21:20    <DIR>          .
26/07/2011  21:20    <DIR>          ..

Das Datum ..im ersten Fall ist also nicht dasselbe wie das Datum .im zweiten. Was anscheinend falsch ist, da sie dasselbe Verzeichnis sind (oder sein sollten). Allerdings .und ..beziehen sich auf das aktuelle und übergeordnetes Verzeichnis und sind beide zur gleichen Zeit erstellt - wenn das Verzeichnis erstellt wurde - so ist es eigentlich richtig (dank Synetech inc für diesen Hinweis)

Die einzige Zeit , die Zeitstempel wäre anders, wenn der eine oder andere .oder ..neu erstellt wurden.


Die ursprüngliche Antwort:

. bedeutet das aktuelle Verzeichnis.

.. bedeutet das übergeordnete Verzeichnis.

Unter normalen Umständen sind sie also immer unterschiedlich.

Sie führen nur dann zum gleichen Ergebnis, wenn Sie sich im Stammverzeichnis der Festplatte befinden. Also an C:\> dir .und dir ..gleich Output produzieren.

ChrisF
quelle
Antwort auf den Punkt, toll.
ppuschmann
Bearbeitet, um die Frage zu betonen, bezieht sich auf ihr Erscheinen in einer Verzeichnisliste.
Zeugenschutz ID 44583292
@ Mike - versucht, die überarbeitete Frage zu beantworten, um die Stimmen zu rechtfertigen;)
ChrisF
4
Das ist falsch, da ..nicht der Zeitstempel des übergeordneten Verzeichnisses angegeben wird, sondern der Zeitstempel des aktuellen Verzeichnisses. Dies liegt daran , .und ..beide erstellt , wenn das Verzeichnis erstellt wird.
Synetech
@Synetech - Ah! Der Penny fällt
ChrisF
14

Nein, sie werden immer gleich sein. Da es sich um Verzeichnisse und nicht um Dateien handelt, werden sie geringfügig anders behandelt (tatsächlich sind sie nicht einmal normale Verzeichnisse, sondern Zeiger, wie in eL01 angegeben, und werden daher noch stärker als normale Verzeichnisse behandelt).

Wenn Sie ein Verzeichnis erstellen, werden automatisch zwei Einträge erstellt:

  • . verweist auf das neu erstellte Verzeichnis
  • .. zeigt auf das übergeordnete Verzeichnis des neuen Verzeichnisses

Offensichtlich .wird das aktuelle Datum und die aktuelle Uhrzeit der Erstellung des Verzeichnisses angezeigt, und obwohl es logisch erscheint, dass der Zeitstempel des übergeordneten Verzeichnisses kopiert ..wird, funktioniert dies nicht. Wenn Sie ein neues Verzeichnis erstellen, erhalten beide Zeiger das aktuelle Datum und die aktuelle Uhrzeit. Dies ist unter DOS über Windows 7 sowohl unter FAT * als auch unter NTFS der Fall.

Synetech
quelle
1
+1 da es so aussieht, als hättest du die Antwort gefunden, die ChrisF jetzt präsentiert ;-)
Jonas Heidelberg
@Jonas, tatsächlich, ChrisFs Antwort macht die gleiche falsche Annahme, die die meisten Leute machen würden: Das ..hätte den Zeitstempel der Eltern. (Es würde mich nicht wundern, wenn eines Tages ein neues Dateisystem - WinFS? - es endlich so machen würde.)
Synetech,
Ab seiner 4. Revision würde ich sagen, dass er diese Annahme nicht mehr macht.
Jonas Heidelberg
@Jonas, ach okay. Ich habe die Änderungen nicht gesehen. Na ja, er bekommt sowieso neue Stimmen; Ich denke, das ist der Punkt für die Bearbeitungsfunktion.
Synetech,
Ich hätte Sie in dieser letzten Revision gutschreiben sollen - ich werde es jetzt tun.
ChrisF
4

Ich kann Ihnen eigentlich keinen Beweis liefern, aber ich denke: Jedes Verzeichnis hat eine Liste von Verzeichnissen und Dateien, die es enthält. Damit relative Pfade verwendet werden können, benötigt jedes Verzeichnis diese beiden Zeiger - einen auf sich selbst .und den anderen auf einer Ebene darüber ..- diese beiden Zeiger werden nur zum Zeitpunkt der Erstellung des Verzeichnisses selbst erstellt.

Der Zeitstempel von ..ist also nicht der Zeitstempel des obigen Verzeichnisses, sondern der Zeitstempel des Zeigers auf das obige Verzeichnis.

eL01
quelle
Das ist richtig. Der ..Eintrag erhält den Zeitstempel des aktuellen Datums und der aktuellen Uhrzeit beim Erstellen des aktuellen Verzeichnisses.
Synetech