What is the difference between modify and change in stat command context?
stat command’s manual page says:
%x Time of last access %y Time of last modification %z Time of last change
I cannot understand the difference between modify and change. I understand the words are synonyms (English is not my native language), but their output is different.
I tried the following command
stat --printf="Change %znAccess %xnModify %yn" p.txt
Now when I open p.txt, access time is changed, I go into insert mode, edit the file, modify and change time remains same.
Change 2010-10-06 12:48:39.286252389 +0500 Access 2010-10-06 12:49:14.962243456 +0500 Modify 2010-10-06 12:48:39.234498878 +0500
When I write the changes to file
:w, modify and change, both change but give different values.
Change 2010-10-06 12:51:21.949082169 +0500 Access 2010-10-06 12:51:21.908246082 +0500 Modify 2010-10-06 12:51:21.908246082 +0500
So what are the meanings of “modify” and “change” in this context? That is, time of modification and change give time of which events?
There are 3 kind of “timestamps”:
- Access – the last time the file was read
- Modify – the last time the file was modified (content has been modified)
- Change – the last time meta data of the file was changed (e.g. permissions)
This post on StackOverflow explains the difference among the three different times from a programming interface point of view.