it-swarm-ru.tech

В чем разница между модификацией и изменением в контексте команды stat?

Страница руководства команды 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