web-dev-qa-db-fra.com

Quand un répertoire UNIX change-t-il son horodatage

J'ai utilisé "touch" sur un fichier, mettant à jour l'horodatage du fichier, mais l'horodatage du répertoire parent n'a pas changé. Cependant, (comme prévu) lorsque j'ai créé un nouveau fichier dans le répertoire parent, l'horodatage du répertoire a changé.

Quels critères les systèmes d'exploitation de type UNIX (en particulier AIX) utilisent-ils pour déterminer quand mettre à jour l'horodatage d'un répertoire?

46
Scrubbie

L'horodatage est mis à jour lorsque les données qui représentent le répertoire changent. Un changement dans un sous-répertoire du répertoire D ne change rien à la représentation de D car D pointe uniquement vers le sous-répertoire, pas vers ce qu'il contient. En revanche, la création d'un fichier en D modifie le bloc de données sur le disque qui représente D.

31
Pascal Cuoq

L'horodatage d'un répertoire est modifié lorsque le répertoire lui-même est modifié. Le répertoire contient, entre autres choses, une liste des inodes des fichiers dans le répertoire. Ainsi, lorsque vous modifiez le contenu du répertoire en ajoutant ou en supprimant des fichiers, l'horodatage des répertoires sera mis à jour.

16
Steve Weet

Vous pouvez utiliser la commande stat pour trouver l'heure de modification, l'heure de création, etc. d'un fichier/répertoire. Reportez-vous à https://linux.die.net/man/2/stat

L'article déclare: st_mtime d'un répertoire est modifié par la création ou la suppression de fichiers dans ce répertoire. Le champ st_mtime n'est pas modifié pour les changements de propriétaire, de groupe, de nombre de liens physiques ou de mode.

1
Kisalay