Toque em Alterar acesso, modificar e alterar

5

Eu sei que você pode usar "toque" para alterar o acesso e modificar registros de data e hora de um arquivo usando o sinalizador "-t", mas é possível alterar o registro de data e hora "alterar". Se sim, como eu faria isso? Muito obrigado pelo seu tempo.

    
por Phillip 06.03.2012 / 07:07

2 respostas

8

Você está perguntando como definir o valor ctime de um arquivo. A única maneira de fazer isso é alterar a data do sistema e, em seguida, alterar o arquivo, que é um método bastante difícil que provavelmente causará danos ao restante do sistema.

Se você estiver usando ext3 (talvez ext2 e ext4 também?), você pode usar debugfs para alterá-lo, mas isso exige que você desmonte o sistema de arquivos primeiro. Você pode encontrar informações em LINHA DE COMANDO KUNG FU: Episódio # 80: Time Bandits (o início é sobre o Windows; pule para a metade até "Hal tem o toque") para ler sobre comandos como este: debugfs -w -R 'set_inode_field /tmp/test ctime 200901010101' /dev/mapper/elk-root

Sem usar hackery de metadados do sistema de arquivos como esse, você não pode fazer isso.

    
por 29.05.2012 / 00:11
-1

O que? A hora modificada é a hora em que o arquivo foi alterado pela última vez.

$ touch test
$ stat test
  File: 'test'
  Size: 749             Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 33          Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/      me)   Gid: ( 1000/      me)
Access: 2012-03-06 18:43:19.000000000 -0600
Modify: 2012-03-06 18:43:19.000000000 -0600
Change: 2012-03-06 18:43:19.000000000 -0600
$ touch test
$ stat test
  File: 'test'
  Size: 749             Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 33          Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/      me)   Gid: ( 1000/      me)
Access: 2012-03-06 18:43:23.000000000 -0600
Modify: 2012-03-06 18:43:23.000000000 -0600
Change: 2012-03-06 18:43:23.000000000 -0600
    
por 06.03.2012 / 07:58