Qual é a diferença entre modify e change no contexto do comando stat?

132

A statpágina de manual do comando diz:

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

Não consigo entender a diferença entre modificar e mudar . Entendo que as palavras são sinônimos (inglês não é minha língua nativa), mas a saída delas é diferente.

Eu tentei o seguinte comando

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

Agora, quando abro p.txt, o tempo de acesso é alterado, entro no modo de inserção, edito o arquivo, modifico e o tempo de alteração permanece o mesmo.

Alterar 2010-10-06 12: 48: 39.286252389 +0500
Acesse 2010-10-06 12:49:14. 962243456 +0500
Modify 2010-10-06 12: 48: 39.234498878 +0500

Quando escrevo as alterações no arquivo :w, modifico e altero, ambas mudam, mas fornecem valores diferentes.

Alterar 2010-10-06 12:51:21. 949082169 +0500
Acesso 2010-10-06 12: 51: 21.908246082 +0500
Modifique 2010-10-06 12:51:21. 908246082 +0500

Então, quais são os significados de "modificar" e "mudar" neste contexto? Ou seja, o tempo de modificação e mudança fornece tempo para quais eventos?

obrigado

Andrew-Dufresne
fonte
8
Para torná-lo ainda mais engraçado, na minha localização --helpele lê algo como "última modificação" e "última modificação", pois não temos duas palavras para modificar / alterar.
Camilo Martin
1
@CamiloMartin, que é um péssimo desserviço por parte do tradutor. Se você sabe inglês, recomendo usar apenas o ambiente em inglês - muito mais fácil de entender a intenção do escritor da documentação original e também muito mais fácil encontrar ajuda on-line.
Ján Lalinský 31/01

Respostas:

145

Isso já foi respondido nesta pergunta , que cito (texto original de echox ):

Existem 3 tipos de "timestamps":

  • Acesso - a última vez que o arquivo foi lido
  • Modificar - a última vez que o arquivo foi modificado (o conteúdo foi modificado)
  • Alterar - a última vez que os metadados do arquivo foram alterados (por exemplo, permissões)

Esta publicação no StackOverflow explica a diferença entre os três momentos diferentes do ponto de vista da interface de programação.

Riccardo Murri
fonte