Como posso alterar 'alterar' a data do arquivo?

23

Como posso alterar a data de 'alteração'?

$ touch -t 9901010000 test;stat test
  File: `test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fe01h/65025d    Inode: 11279017    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    x)   Gid: ( 1000/    x)
Access: 1999-01-01 00:00:00.000000000 +0100
Modify: 1999-01-01 00:00:00.000000000 +0100
**Change: 2012-04-08 19:26:56.061614473 +0200**
 Birth: -
Alguém1234
fonte
3
Definir arbitrário ctimenão é fácil de fazer. Pergunta relacionada sobre SO.
Jw013

Respostas:

22

Você não pode alterar o ctime por meios comuns. Isso ocorre por design: o ctime é sempre atualizado para o atual quando você altera qualquer metadado do arquivo e não há como impor um ctime diferente. Para alterar o tempo de execução de um arquivo, você precisa fazer o seguinte:

  • Defina a hora do sistema para a hora que você deseja impor, toque no arquivo e redefina a hora do sistema.
  • Modifique o kernel para adicionar uma interface para alterar o ctime.
  • Acesse a imagem do disco diretamente (por exemplo, com debugfs) e modifique os bits no disco (não faça isso enquanto o sistema de arquivos estiver montado).
Gilles 'SO- parar de ser mau'
fonte
2
Definir a hora do sistema e o chmod funcionou para mim. Veja o script aqui: stackoverflow.com/questions/16126992/…
gaoithe
11

Você tem a resposta na pergunta SO relacionada, apontada por jw013, para extX, no disco desmontado :

# Update ctime
debugfs -w -R 'set_inode_field /tmp/foo ctime 201001010101' /dev/sda1

# Drop vm cache so ctime update is reflected
echo 2 > /proc/sys/vm/drop_caches
Coren
fonte
4

O horário de um arquivo é atualizado quando qualquer um dos metadados é alterado.

$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26  2010 x.py
$ stat -c %z x.py
2010-03-26 11:57:56.237068175 -0400
$ chown ignacio x.py
$ stat -c %z x.py
2012-04-08 15:31:33.682383575 -0400
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26  2010 x.py
Ignacio Vazquez-Abrams
fonte
mas como modificá-lo sem atualização lo
Someone1234