O diretório mtime sempre muda quando um novo arquivo é criado dentro?

12

Sempre é verdade que, quando um novo arquivo é criado em um diretório - o mtime do diretório muda?

Kolypto
fonte
Isso é bastante fácil de testar ...
ewwhite
6
Fácil. No entanto, nem em todos os sistemas operacionais e sistemas de arquivos de uma só vez :)
kolypto

Respostas:

12

A resposta curta é sim, deveria . Uma resposta mais longa segue.

Um diretório é um tipo especial de arquivo; seu conteúdo é um conjunto de tuplas (nome do arquivo, nó-i) . Assim, o mtime do diretório é atualizado sempre que uma tupla é adicionada, removida ou alterada - ou seja, um arquivo de qualquer tipo (incluindo links físicos e diretórios) é adicionado, removido ou renomeado no diretório (mas não nos diretórios aninhados - esses são diferentes " arquivos").

Observe que quando os metadados do arquivo são alterados (proprietário, grupo, modo, atime, ctime, mtime - hospedado no nó i ), o mtime NÃO é atualizado (nem no arquivo nem contém o diretório), mas o ctime do arquivo .

Consulte também o volume Definições básicas da IEEE Std 1003.1-2001, Seção 4.7, Atualização dos horários dos arquivos .

yrk
fonte
1
Observe que isso é válido apenas para arquivos criados (etc) diretamente dentro do diretório pai em questão, mas não para arquivos criados (etc) em um diretório no diretório pai. Talvez isso seja óbvio para os outros, mas não foi para mim (eu tive que testar para encontrar a resposta).
logidelic
1
Obrigado, @logidelic, atualizei a resposta para torná-la mais clara.
Yrk
Por que o ctime do diretório também muda quando você cria um novo arquivo?
Sr. Roland