Czy „.” i „…” wpisy na liście dir zawsze są takie same?

13

Kiedy „.” i „..” wpisy na liście dir różnią się? (Rozumiem, że reprezentują dwa różne katalogi, ale zawsze wyświetlają identyczną listę z tą samą datą i godziną w domyślnym poleceniu dir. Czy kiedykolwiek się różnią?)

ID ochrony świadka 44583292
źródło
1
Czy możesz podać przykład (być może zrzut ekranu)
ChrisF

Odpowiedzi:

26

Co do faktycznego wpisu:

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

Obie używają daty bieżącego katalogu. Jeśli zaczniesz w C:\Users\Chris(powiedzmy), możesz otrzymać powyższe. Ale kiedy podejdziesz do C:\Userssiebie, otrzymasz:

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

Tak więc data ..pierwszego przypadku nie jest taka sama jak data .drugiego. Co jest najwyraźniej złe, ponieważ są (lub powinny być) tym samym katalogiem. Jednak .i ..są odniesienia do bieżących i macierzystego katalogu i są tworzone zarówno w tym samym czasie - gdy katalog został stworzony - więc jest to rzeczywiście poprawne (dzięki Synetech inc za wskazanie na to uwagę)

Tylko raz timestamps byłoby inaczej jest, jeśli jeden lub drugi z .albo ..zostały odtworzone.


Oryginalna odpowiedź:

. oznacza bieżący katalog.

.. oznacza katalog nadrzędny.

Więc w normalnych okolicznościach są zawsze inne.

Jedyny raz dają taki sam wynik, gdy jesteś w katalogu głównym dysku. Więc w C:\> dir .i dir ..produkuj ten sam wynik.

ChrisF
źródło
odpowiedź na temat, świetnie.
ppuschmann
Poddane edycji w celu podkreślenia pytania dotyczy ich wyglądu na liście reż.
ID ochrony świadka 44583292,
@mike - próbował odpowiedzieć na zmienione pytanie, aby uzasadnić głosowanie;)
ChrisF,
4
To źle, ponieważ ..nie podano znacznika czasu katalogu nadrzędnego, podano znacznik czasu bieżącego katalogu. To dlatego, że .i ..są tworzone zarówno gdy katalog jest tworzony.
Synetech,
@Synetech - Ah! Grosz upuszcza
ChrisF
14

Nie, zawsze będą takie same. Ponieważ są to katalogi, a nie pliki, są one obsługiwane nieco inaczej (w rzeczywistości nie są nawet normalnymi katalogami, są wskaźnikami, jak powiedział eL01, więc są obsługiwane nawet bardziej niż normalne katalogi).

Podczas tworzenia katalogu automatycznie tworzone są dwa wpisy:

  • . wskazuje na nowo utworzony katalog
  • .. wskazuje element nadrzędny nowego katalogu

Oczywiście .będzie miała bieżącą datę i godzinę utworzenia katalogu i chociaż może się wydawać logiczne, że znacznik czasu katalogu nadrzędnego zostanie skopiowany .., nie działa to w ten sposób. Podczas tworzenia nowego katalogu oba wskaźniki otrzymują bieżącą datę i godzinę. Tak jest w przypadku systemu DOS przez system Windows 7 zarówno w systemie FAT *, jak i NTFS.

Synetech
źródło
1
+1, ponieważ wydaje się, że to ty wymyśliłeś odpowiedź, którą ChrisF obecnie przedstawia ;-)
Jonas Heidelberg,
@Jonas, w rzeczywistości, odpowiedź ChrisFa przyjmuje to samo błędne założenie, że większość ludzi by to zrobiła: ..oznaczałoby to znacznik czasu rodzica. (Nie zdziwiłbym się, gdyby pewnego dnia nowy system plików - WinFS? - miałby to w końcu zrobić).
Synetech
Zaczynając od czwartej wersji , powiedziałbym, że nie przyjmuje już takiego założenia.
Jonas Heidelberg,
@Jonas, ah dobrze. Nie widziałem zmian. No cóż, i tak zyskuje nowe głosy; Myślę, że o to chodzi w funkcji edycji.
Synetech
Powinienem był ci podziękować za tę najnowszą wersję - zrobię to teraz.
ChrisF
4

Właściwie nie mogę dać ci dowodu, ale myślę: każdy katalog zawiera listę katalogów i plików, które zawiera. Aby umożliwić korzystanie ze ścieżek względnych, każdy katalog potrzebuje tych dwóch wskaźników - jednego do siebie, .a drugiego katalogu jeden poziom wyżej ..- te dwa wskaźniki są tworzone tylko w momencie tworzenia samego katalogu.

Tak więc znacznik czasu w ..rzeczywistości nie jest znacznikiem czasu powyższego katalogu, ale znacznikiem czasu wskaźnika do katalogu powyżej.

eL01
źródło
To jest poprawne. ..Wejście podany jest znacznik czasu bieżącej daty i godziny, kiedy bieżący katalog jest tworzony.
Synetech,