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.