Le répertoire mtime change-t-il toujours lorsqu'un nouveau fichier est créé à l'intérieur?

12

Est-il toujours vrai que lorsqu'un nouveau fichier est créé dans un répertoire - le mtime du répertoire change?

kolypto
la source
C'est assez facile à tester ...
ewwhite
6
Facile. Cependant, pas sur tous les systèmes d'exploitation et systèmes de fichiers à la fois :)
kolypto

Réponses:

12

La réponse courte est oui, cela devrait . Une réponse plus longue suit.

Un répertoire est un type spécial de fichier; son contenu est un ensemble de tuples (nom de fichier, i-node) . Ainsi, le mtime du répertoire est mis à jour chaque fois qu'un tuple est ajouté, supprimé ou modifié - c'est-à-dire qu'un fichier de tout type (y compris les liens physiques et les répertoires) est ajouté, supprimé ou renommé dans le répertoire (mais pas dans les répertoires imbriqués - ceux-ci sont différents " des dossiers").

Veuillez noter que lorsque les métadonnées du fichier changent (propriétaire, groupe, mode, atime, ctime, mtime - hébergé dans i-node ), mtime n'est PAS mis à jour (ni sur le fichier ni contenant dir) mais le ctime du fichier le fait.

Voir également le volume Définitions de base de IEEE Std 1003.1-2001, Section 4.7, Mise à jour des heures de fichier .

yrk
la source
1
Notez que cela n'est vrai que pour les fichiers créés (etc) directement à l'intérieur du répertoire parent en question, mais pas pour les fichiers créés (etc) dans un répertoire sous le répertoire parent. C'est peut-être évident pour les autres, mais ce n'était pas pour moi (j'ai dû tester pour trouver la réponse).
logidelic
1
@logidelic merci, j'ai mis à jour la réponse pour la rendre plus claire.
yrk
Pourquoi le ctime du répertoire change-t-il également lorsque vous créez un nouveau fichier dedans?
M. Roland