What is the difference between modify and change in stat command context?
The 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?
Thanks
This has already been answered in this question, which I quote (original text by echox):
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.