O que conta como modificação ou alteração de um arquivo?

15

A renomeação afeta o tempo de modificação ou acesso do arquivo? Existe uma lista em algum lugar do que muda que horas?

    
por M28 12.12.2013 / 05:18

2 respostas

9

A renomeação atualiza o tempo da alteração:

$ mkdir tmp
$ cd tmp

$ echo abc > a
$ stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 26h/38d Inode: 5038682     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000 /  zelda   Gid: ( 1000/   zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
 Birth: -

$ mv a b
$ stat b
  File: 'b'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 26h/38d Inode: 5038682     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/  zelda)   Gid: ( 1000/   zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
 Birth: -

O tempo de acesso é atualizado ao ler o conteúdo de um arquivo. Modifique quando você realmente atualizar o arquivo (abertura para modificação não é suficiente para alterar o tempo de modificação).

    
por 12.12.2013 / 07:19
8

Uma modificação que afeta o mtime do arquivo é uma alteração dos dados do arquivo: uma gravação de uma quantidade de bytes diferente de zero ou um truncamento que acaba modificando o arquivo. A criação de um arquivo também define seu mtime para a data atual. Simplesmente abrir um arquivo para escrever não afeta o tempo, supondo que o arquivo não tenha sido criado ou truncado.

A leitura de um arquivo (se um número diferente de bytes for lido) ou a execução de um arquivo define seu tempo para a hora atual. Simplesmente abrir um arquivo para leitura nunca afeta o tempo. No Linux, isso é agora desativado por padrão na maioria das circunstâncias; a opção atime mount restaura as atualizações do atime, enquanto a opção noatime mount as desativa completamente.

Os programas podem alterar o tempo e o tempo de um arquivo; o comando básico para fazer isso é touch . Alguns programas de cópia de arquivos definem a cópia para o mesmo mtime do original, por exemplo, cp -p ou rsync -t .

Uma alteração que afeta a hora do arquivo é uma alteração dos metadados do arquivo: permissões, proprietário, horas, contagem de links, etc. A renomeação de um arquivo também atualiza seu ctime. Mudanças nos dados do arquivo também afetam a hora, mas a leitura de um arquivo não altera a hora, mesmo que isso mude o tempo. É impossível alterar a ctime de qualquer outra forma que não seja a hora atual (mesmo o root é restrito, mas o root pode definir indiretamente a ctime alterando primeiro a hora do sistema ou acessando diretamente a partição que contém o sistema de arquivos).

    
por 13.12.2013 / 02:18