Comprendre les horodatages des fichiers Linux : mtime, ctime et atime

Comprendre les horodatages des fichiers Linux : mtime, ctime et atime

Le système d'exploitation Linux garde une trace de trois horodatages pour chaque fichier sur votre système. Ces horodatages vous permettent de découvrir quand un fichier a été mis à jour pour la dernière fois. Mais que signifient-ils tous ? Et comment connaître ces horaires pour un fichier ? Y a-t-il une différence en ce qui concerne les répertoires ?





Une compréhension de atime, ctime et mtime peut répondre à toutes ces questions. Ce sont les trois horodatages que les systèmes de fichiers Unix suivent. Si jamais vous avez besoin de découvrir des détails sur ce qui a changé et quand, lisez la suite.





Quels sont les trois horodatages Unix ?

Chaque fichier est associé à trois horodatages. Linux les stocke dans le Format d'heure Unix qui mesure les secondes depuis l'époque. Les trois horodatages sont communément appelés atime, ctime et mtime.





Les mtime est la plus courante et souvent la plus utile. Ça signifie heure modifiée . C'est l'heure à laquelle le contenu du fichier a été écrit pour la dernière fois sur le disque.

Légèrement différent est le ctemps Qui veut dire changer le temps . Cet horodatage suit les modifications des métadonnées telles que la propriété et les autorisations. Cela inclut le renommage d'un fichier, du moins sur les systèmes d'exploitation Linux modernes typiques. Mais il se met également à jour lorsque le contenu du fichier change, il est donc toujours aussi à jour que le mtime.



Le troisième horodatage est le à l'heure , qui stocke la dernière fois que quelqu'un a accédé au fichier.

comment ajouter un contour de texte dans photoshop

Comment les horodatages s'appliquent aux répertoires

Un répertoire Linux est essentiellement une liste des fichiers de ce répertoire. Ainsi, la création d'un fichier dans un répertoire mettra à jour le mtime de ce répertoire. Lister les fichiers dans le répertoire, en utilisant le ls commande, par exemple, met à jour son heure d'accès. Et, comme pour un fichier, la modification des autorisations ou du nom d'un répertoire met à jour son ctime.





Qu'en est-il du temps de création ?

Cela peut vous surprendre d'apprendre que Linux ne garde tout simplement pas trace du temps de création. Vous pourriez supposer au départ que ctemps représente le temps de création. De même, vous pourriez penser que c'est une chose très utile pour pouvoir le découvrir.

De nombreuses applications enregistrent des fichiers en les créant à partir de zéro à chaque fois. Cela rendrait l'utilisation d'un temps de création trompeuse.





Comment afficher les différents horodatages

Le moyen le plus simple d'obtenir des informations d'horodatage est d'utiliser les ls commander . Le format long par défaut affiche les détails du mtime :

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Vous pouvez afficher l'heure à la place en utilisant le -u drapeau:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

La dernière ligne confirme que le mtime de ce fichier est différent du atime. Enfin, utilisez le -c indicateur pour afficher ctime :

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Cette fois, nous confirmons que les trois temps sont distincts et corrects : nous avons modifié, puis accédé, puis changé le fichier, dans cet ordre.

Une alternative à ls est le Etat commander. Cette commande affiche les détails de bas niveau de l'inode du fichier. Cela facilite la vérification des trois fois à la fois. Il contourne également le problème de l'intuitif -u drapeau. Voici un exemple de sortie pour le même fichier :

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Comment mettre à jour les horodatages

Les toucher La commande change les temps de modification et d'accès d'un fichier. C'est aussi un moyen pratique de créer un fichier vide, ce qu'il fera si le fichier n'existe pas déjà :

100 de disque utilisé windows 10
touch tmp

Par défaut, il définira mtime et atime à l'heure actuelle. Vous pouvez régler une heure différente avec le -t drapeau:

touch -t 202103061200 tmp

Vous pouvez également définir uniquement mtime ou atime avec le -m et drapeaux respectivement :

touch -t 202103061300 -m tmp

Notez que le ctime est toujours mis à jour lorsque nous définissons l'atime ou le mtime.

Comment trouver des fichiers en fonction des horodatages

Les trouve La commande est un autre outil qui agit sur les horodatages. Il peut filtrer les fichiers en fonction de atime, ctime ou mtime. Par exemple:

find . -amin 15

trouvera les fichiers consultés il y a exactement 15 minutes, tandis que :

find . -mtime -2

trouvera les fichiers modifiés au cours des deux derniers jours.

Linux garde une trace de chaque fichier trois fois

L'horodatage de fichier le plus couramment référencé est mtime. Il s'agit de la date et de l'heure qu'une liste de fichiers affiche, par exemple. Mais les deux autres horodatages peuvent également être utiles, à condition que vous compreniez à quoi ils font référence. En particulier, rappelez-vous toujours que ctime représente monnaie le temps, non création temps.

Les commandes telles que touch et stat sont des membres utiles de la boîte à outils de ligne de commande Linux. Ces commandes amélioreront votre flux de travail Linux en vous permettant de créer rapidement de nouveaux fichiers.

Partager Partager Tweeter E-mail La feuille de triche de référence des commandes Linux

Cette simple aide-mémoire vous aidera à vous familiariser avec le terminal de ligne de commande Linux en un rien de temps.

pourquoi google maps ne fonctionne pas
Lire la suite Rubriques connexes
  • Linux
  • Gestion de fichiers
  • Distribution Linux
A propos de l'auteur Bobby Jack(58 articles publiés)

Bobby est un passionné de technologie qui a travaillé comme développeur de logiciels pendant près de deux décennies. Il est passionné par les jeux, travaillant comme rédacteur de critiques au Switch Player Magazine, et est immergé dans tous les aspects de la publication en ligne et du développement Web.

Plus de Bobby Jack

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner