web-dev-qa-db-fra.com

Quelle est la différence entre modifier et changer dans le contexte de la commande stat?

La page de manuel de la commande stat indique:

   %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, édite le fichier, modifie et change le temps reste le même.

Modifiez le 2010-10-06 12: 48: 39.286252389 +0500 
 Accédez au 2010-10-06 12:49:14.962243456 +0500 
 Modifier 2010-10-06 12: 48: 39.234498878 +0500 

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

Changement 2010-10-06 12:51:21.949082169 +0500 
 Accédez au 2010-10-06 12: 51: 21.908246082 +0500 
 Modifiez le 2010-10-06 12:51:21.908246082 +0500 

Alors, quelles sont les significations de "modifier" et "changer" dans ce contexte? Autrement dit, le temps de modification et de changement donne le temps de quels événements?

Merci

137
Andrew-Dufresne

Cela a déjà été répondu dans cette question , que je cite (texte original par 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é)
  • Modifier - la dernière fois que les métadonnées du fichier ont été modifiées (par exemple, les autorisations)

Ce post sur StackOverflow explique la différence entre les trois temps différents du point de vue de l'interface de programmation.

154
Riccardo Murri