Quais são os relatórios de data de modificação ls para diretórios no Bash shell?

7

Quando executo ls -l no shell Bash, ele lista um tempo de modificação para arquivos e diretórios. Como observado neste thread , o tempo de modificação dos diretórios não reflete todo o seu conteúdo. Ele também não parece ser afetado pela alteração do nome do diretório. O que exatamente o horário de modificação de um diretório reflete?

É a hora da última modificação de um arquivo (ou diretório) no nível superior do diretório?

    
por Nagel 04.02.2014 / 12:18

2 respostas

9

Note que, no Unix, um diretório não "contém" os arquivos contidos nele. Em vez disso, contém links para eles. Veja a chamada do sistema link(2) para mais informações.

Isso significa que o conteúdo "direto" de um diretório é uma lista de nomes de arquivos e i-numbers i-numbers correspondentes . A data de modificação do diretório, portanto, indica sempre que essa lista é alterada. As operações que causariam essas mudanças incluiriam, mas não necessariamente se limitam a, o seguinte:

  • Criando um novo arquivo no diretório
  • Removendo (ou melhor, unlink(2) ing) um arquivo do diretório
  • Renomeando um arquivo no diretório
  • Vinculando hardmente um arquivo em outro lugar no diretório
por 04.02.2014 / 12:23
3

Pense no diretório como simples arquivo contendo lista de outros arquivos. Sempre que você alterar seu conteúdo (renomear arquivos, adicionar ou remover arquivos contidos), o tempo de modificação de um diretório será alterado.

    
por 04.02.2014 / 15:44

Tags