Коли буде "." та ".." записи в списку dir відрізняються? (Я розумію, що вони представляють два різні каталоги, але вони завжди вказують однаково з однаковою датою та часом у команді dir за замовчуванням. Чи вони колись відрізняються?)
Коли буде "." та ".." записи в списку dir відрізняються? (Я розумію, що вони представляють два різні каталоги, але вони завжди вказують однаково з однаковою датою та часом у команді 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> ..
Отже дата ..
в першому випадку не така, як дата .
у другому. Що, мабуть, неправильно, оскільки вони (або повинні бути) одного і того ж каталогу. Тим НЕ менше, .
і ..
посилання на поточний і батьківський каталог і обидва створені в той же час - коли каталог був створений - так це на самому справі правильно (спасибі Synetech інк за вказівку на це)
Єдиний час, коли часові позначки будуть різними - це відтворення .
або ..
відтворення одного чи іншого .
Оригінальна відповідь:
.
означає поточний каталог.
..
означає батьківський каталог.
Тож за звичайних обставин вони завжди різні.
Єдиний раз, коли вони дають той же результат, це коли ви знаходитесь в корені диска. Тож C:\>
dir .
і dir ..
виробляють однаковий вихід.
..
не дається часова марка батьківського каталогу, вона задається часовою міткою поточного каталогу. Це тому, що .
і ..
обидва створюються при створенні каталогу.
Ні, вони завжди будуть однаковими. Оскільки це каталоги, а не файли, вони обробляються дещо інакше (насправді це навіть не звичайні каталоги, вони - покажчики, як сказав eL01, тому вони обробляються навіть інакше, ніж звичайні каталоги).
Коли ви створюєте каталог, два записи автоматично створюються:
.
вказує на щойно створений каталог..
вказує на новий батьківський каталогОчевидно, .
буде мати поточну дату та час створення каталогу, і хоча це може здатися логічним для копіювання часової позначки батьківського каталогу ..
, це не так, як це працює. Коли ви створюєте новий каталог, обидва вказівники отримують поточну дату та час. Це стосується DOS через Windows 7 як на FAT *, так і на NTFS.
..
матиме позначку часу батьків. (Я не був би здивований, якби одного дня нова файлова система - WinFS? - нарешті зробила б це так).
Я фактично не можу надати вам доказ, але я думаю: у кожному каталозі є список каталогів та файлів, які він містить. Щоб зробити можливим використовувати відносні шляхи, для кожного каталогу потрібні ці два вказівники - один до себе, .
а інший на один рівень вище ..
- ці два вказівники просто створюються під час створення самого каталогу.
Таким чином, часова марка ..
насправді є не часовою позначкою каталогу вгорі, а часовою міткою вказівника на вказаний вище каталог.
..
Запис дається тимчасова міткою поточної дати і часу , коли створюються в поточному каталозі.