Quando seria o "." e ".." entradas em uma lista de diretórios diferem? (Entendo que eles representam dois diretórios diferentes, mas sempre listam de forma idêntica a mesma data e hora em um comando dir padrão. Eles diferem?)
Quando seria o "." e ".." entradas em uma lista de diretórios diferem? (Entendo que eles representam dois diretórios diferentes, mas sempre listam de forma idêntica a mesma data e hora em um comando dir padrão. Eles diferem?)
Respostas:
Quanto à listagem real:
27/08/2011 11:23 <DIR> .
27/08/2011 11:23 <DIR> ..
Eles estão usando a data do diretório atual para ambos. Se você começar C:\Users\Chris
(digamos), poderá obter o que foi dito acima. Mas quando você vai até C:\Users
:
26/07/2011 21:20 <DIR> .
26/07/2011 21:20 <DIR> ..
Portanto, a data do ..
primeiro caso não é igual à data do .
segundo. O que aparentemente está errado, pois eles são (ou deveriam ser) o mesmo diretório. No entanto, .
e ..
são referências ao diretório atual e pai e são criados ao mesmo tempo - quando o diretório foi criado -, portanto, ele está realmente correto (obrigado à Synetech inc por apontar isso)
O único momento em que os carimbos de data e hora seriam diferentes é se um ou outro de .
ou ..
foi recriado.
A resposta original:
.
significa o diretório atual.
..
significa o diretório pai.
Então, em circunstâncias normais, eles são sempre diferentes.
O único momento em que eles produzem o mesmo resultado é quando você está na raiz do disco. Assim, no C:\>
dir .
e dir ..
produzem o mesmo resultado.
..
não recebe o carimbo de data / hora do diretório pai, mas o carimbo de data / hora do diretório atual. Isso ocorre .
e ..
ambos são criados quando o diretório é criado.
Não, eles sempre serão os mesmos. Como são diretórios, não arquivos, eles são tratados de maneira um pouco diferente (na verdade, eles nem são diretórios normais, são indicadores como o eL01 disse, portanto, são tratados de maneira ainda mais diferente do que os diretórios normais).
Quando você cria um diretório, duas entradas são criadas automaticamente:
.
aponta para o diretório recém-criado..
aponta para o pai do novo diretórioObviamente .
terá a data e hora atuais em que o diretório é criado e, embora possa parecer lógico que o carimbo de data e hora do diretório pai seja copiado ..
, não é assim que funciona. Quando você cria um novo diretório, os dois ponteiros recebem a data e a hora atuais. É o caso do DOS através do Windows 7 no FAT * e no NTFS.
..
teria o carimbo de data e hora do pai. (Eu não ficaria surpreso se algum dia um novo sistema de arquivos - WinFS? - finalmente fizesse dessa maneira).
Na verdade, não posso lhe dar provas, mas penso: Todo diretório tem uma lista de diretórios e arquivos que ele contém. Para possibilitar o uso de caminhos relativos, todo diretório precisa desses dois ponteiros - um para si mesmo .
e o outro diretório um nível acima ..
- esses dois ponteiros são criados apenas no momento em que o próprio diretório é criado.
Portanto, o registro de data e hora de ..
na verdade não é o registro de data e hora do diretório acima, mas o registro de data e hora do ponteiro para o diretório acima.
..
entrada recebe o carimbo de data e hora da data e hora atuais em que o diretório atual é criado.