Quelle est la difference entre modify et change in contexte de la commande stat?

132

La statpage de manuel de la commande dit:

   %x     Time of last access
   %y     Time of last modification
   %z     Time of last change

Je ne peux pas comprendre la différence entre modifier et changer . Je comprends que les mots sont des synonymes (l’anglais n’est pas ma langue maternelle), mais leur sortie est différente.

J'ai essayé la commande suivante

stat --printf="Change %z\nAccess %x\nModify %y\n" p.txt

Maintenant, lorsque j'ouvre p.txt, le temps d'accès est modifié, je passe en mode insertion, modifie le fichier, le modifie et le temps reste identique.

Changement 2010-10-06 12: 48: 39.286252389 +0500
Accès 2010-10-06 12:49:14. 962243456 +0500
Modifier le 2010-10-06 12: 48: 39.234498878 +0500

Lorsque j'écris les modifications dans le fichier :w, modifier et modifier, les deux changent mais donnent des valeurs différentes.

Changer le 2010-10-06 12:51:21. 949082169 +0500
Accès 2010-10-06 12: 51: 21.908246082 +0500
Modifier le 2010-10-06 12:51:21. 908246082 +0500

Alors, quelles sont les significations de "modifier" et "changer" dans ce contexte? C'est-à-dire que l'heure de la modification et du changement donne l'heure de quels événements?

Merci

Andrew-Dufresne
la source
8
Pour le rendre encore plus amusant, dans mon localisée, --helpil lit quelque chose comme "dernière modification" et "dernière modification" car nous n'avons pas deux mots pour modifier / changer.
Camilo Martin
1
@ CamiloMartin qui est un mauvais service rendu par le traducteur. Si vous connaissez l'anglais, je vous recommande d'utiliser uniquement l'environnement anglais: il est beaucoup plus facile de comprendre l'intention de l'auteur de la documentation d'origine et de rechercher de l'aide en ligne.
Ján Lalinský le

Réponses:

145

Ceci a déjà été répondu dans cette question , que je cite (texte original de echox ):

Il existe 3 types de "timestamps":

  • Accès - la dernière fois que le fichier a été lu
  • Modifier - la dernière fois que le fichier a été modifié (le contenu a été modifié)
  • Change - la dernière fois que les métadonnées du fichier ont été modifiées (autorisations, par exemple).

Cet article sur StackOverflow explique la différence entre les trois moments différents du point de vue de l'interface de programmation.

Riccardo Murri
la source