it-swarm.cn

stat命令上下文中的Modify和Change有什么区别?

stat命令的手册页显示:

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

我无法理解修改更改之间的区别。我了解这些单词是同义词(英语不是我的母语),但是它们的输出是不同的。

我尝试了以下命令

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

现在,当我打开p.txt时,访问时间已更改,我进入插入模式,编辑文件,修改和更改时间保持不变。

更改2010-10-06 12:48:39.286252389 +0500 
访问2010-10-06 12:49:14。962243456 +0500 
修改2010-10-06 12:48:39.234498878 +0500 

当我将更改写入文件:w,修改和更改,两者都更改,但给出不同的值。

变更2010-10-06 12:51:21。949082169 +0500 
访问2010-10-06 12:51:21.908246082 +0500 
修改2010-10-06 12:51:21.908246082 +0500 

那么,在这种情况下,“修改”和“更改”是什么意思?也就是说,修改和更改的时间赋予了哪些事件时间?

谢谢

137
Andrew-Dufresne

这已经在 这个问题 中得到了回答,我引用了( echox 的原始文本):

有3种“时间戳记”:

  • 访问-上次读取文件的时间
  • 修改-上次修改文件(内容已修改)
  • 更改-文件的最后一次元数据更改(例如权限)

此在StackOverflow上的帖子 从编程界面的角度解释了三个不同时间之间的差异。

154
Riccardo Murri