13

Когда бы "." и ".." записи в каталоге dir отличаются? (Я понимаю, что они представляют две разные директории, но они всегда перечисляют одинаково с одинаковыми датой и временем в команде dir по умолчанию. Отличаются ли они когда-нибудь?)

3 ответа3

26

Что касается фактического перечисления:

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>          ..

Так что дата .. в первом случае не совпадает с датой . во-вторых. Что, по-видимому, неправильно, поскольку они (или должны быть) в одном каталоге. . и .. являются ссылками на текущий и родительский каталог и оба создаются одновременно - когда каталог был создан - так что это действительно правильно (спасибо Synetech inc за указание на это)

Единственное время, когда временные метки будут отличаться, это если один или другой из . или .. были воссозданы.


Оригинальный ответ:

. означает текущий каталог.

.. означает родительский каталог.

Так что в обычных условиях они всегда разные.

Единственный раз, когда они дают тот же результат, когда вы находитесь в корне диска. Так что в C:\> dir . и dir .. производить тот же результат.

14

Нет, они всегда будут одинаковыми. Поскольку это каталоги, а не файлы, они обрабатываются немного по-другому (на самом деле, они даже не являются обычными каталогами, они являются указателями, как сказал eL01, поэтому они обрабатываются даже более иначе, чем обычные каталоги).

Когда вы создаете каталог, автоматически создаются две записи:

  • . указывает на вновь созданный каталог
  • .. указывает на родителя нового каталога

Очевидно . будет иметь текущую дату и время создания каталога, и хотя может показаться логичным, что метка времени родительского каталога будет скопирована в .. , это не так. Когда вы создаете новый каталог, оба указателя получают текущую дату и время. Это относится к DOS через Windows 7 на FAT * и NTFS.

4

Я на самом деле не могу дать вам доказательств, но я думаю: у каждого каталога есть список каталогов и файлов, которые он содержит. Чтобы сделать возможным использование относительных путей, каждому каталогу нужны эти два указателя - один для себя . и другой каталог на уровень выше .. - эти два указателя просто создаются в момент создания самого каталога.

Таким образом, метка времени .. на самом деле не Отметка каталога выше , но метка время указателя на директорию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .