As entradas "." E ".." em uma lista de diretórios são sempre as mesmas?


13

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?)


1
Pode dar um exemplo (talvez com um tiro de tela)
ChrisF

Respostas:


26

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.


responder ao ponto, ótimo.
ppuschmann

Editado para enfatizar a pergunta, está relacionado à aparência deles em uma lista de diretórios.
Proteção de testemunha ID 44583292

@ Mike - tentou responder à pergunta revisto para justificar os votos;)
ChrisF

4
Isso está errado, porque ..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.
Synetech

@Synetech - Ah! O centavo cai
ChrisF

14

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ório

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


1
+1 uma vez que parece que você foi o único a subir com a resposta ChrisF apresenta agora ;-)
Jonas Heidelberg

@Jonas, na verdade, a resposta de ChrisF faz a mesma suposição equivocada de que a maioria das pessoas faria: isso ..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).
Synetech

Começando com sua quarta revisão, eu diria que ele não faz mais essa suposição.
Jonas Heidelberg

@ Jonas, ah tudo bem. Não vi as edições. Bem, ele está recebendo novos votos de qualquer maneira; Eu acho que esse é o ponto para a função de edição.
Synetech 14/09/11

Eu deveria ter creditado a você nessa revisão mais recente - farei isso agora.
ChrisF

4

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.


Está correto. A ..entrada recebe o carimbo de data e hora da data e hora atuais em que o diretório atual é criado.
Synetech
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.