Motivo da alteração no ctime quando o conteúdo do arquivo é modificado

5

Eu entendo que a ctime muda quando os metadados do arquivo ou o conteúdo do arquivo é alterado e mtime na modificação do conteúdo do arquivo.

Gostaria de saber o motivo da atualização do ctime quando o conteúdo do arquivo foi alterado. Já não temos o mtime rastreando?

No meu MAC

usxxkothan3m1:temp kothan3$ touch foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
  File: "foo.txt"
  Size: 0            FileType: Regular File
  Mode: (0644/-rw-r--r--)         Uid: (276196474/ kothan3)  Gid: (720748206/CORP\Domain Users)
Device: 1,4   Inode: 11745569    Links: 1
Access: Mon Aug 24 11:59:07 2015
Modify: Mon Aug 24 11:59:07 2015
Change: Mon Aug 24 11:59:07 2015
usxxkothan3m1:temp kothan3$ echo "write something here" >> foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
  File: "foo.txt"
  Size: 21           FileType: Regular File
  Mode: (0644/-rw-r--r--)         Uid: (276196474/ kothan3)  Gid: (720748206/CORP\Domain Users)
Device: 1,4   Inode: 11745569    Links: 1
Access: Mon Aug 24 11:59:24 2015
**Modify: Mon Aug 24 11:59:21 2015**
**Change: Mon Aug 24 11:59:21 2015**
usxxkothan3m1:temp kothan3$ chmod u-w foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
  File: "foo.txt"
  Size: 21           FileType: Regular File
  Mode: (0444/-r--r--r--)         Uid: (276196474/ kothan3)  Gid: (720748206/CORP\Domain Users)
Device: 1,4   Inode: 11745569    Links: 1
Access: Mon Aug 24 11:59:24 2015
Modify: Mon Aug 24 11:59:21 2015
**Change: Mon Aug 24 11:59:37 2015**
    
por user1234 24.08.2015 / 21:02

1 resposta

2

ctime , ou tempo de alteração de status, refere-se à hora em que os metadados do arquivo foram alterados. Por exemplo, $ ls -ltc no Linux irá classificar e mostrar a hora da última modificação das informações de status do arquivo.

Para se aprofundar um pouco, ctime é o tempo relatado do inode desde os blocos de dados E / OU os metadados do arquivo foram alterados. As mudanças nos metadados do arquivo podem se referir a coisas como o tempo decorrido desde que foram feitas alterações no nome do arquivo, permissões de arquivo, atributos de arquivo, contextos do SELinux e muitos outros tipos de metadados do sistema de arquivos relacionados a esse arquivo específico. Como o campo ctime é atualizado sempre que os blocos de dados ou mudam de metadados, ele é atualizado sempre que mtime é atualizado. Se, no entanto, as alterações mais recentes ao arquivo afetaram apenas a alteração de metadados, como renomeação de arquivos, chmod alterações de permissão feitas pelo usuário, etc., somente ctime e não mtime seria atualizado.

Uma situação em que ctime mudou, mas mtime não o fez, poderia indicar o fato de que os metadados do arquivo foram de alguma forma alterados, mas os dados subjacentes que compõem o arquivo em si não foram alterados. Útil para coisas como backups automatizados de dados, computação forense, etc., eu imagino.

    
por 24.08.2015 / 21:16