¿Cómo puedo cambiar la fecha de 'cambio' del archivo?


23

¿Cómo puedo cambiar la fecha de 'cambio'?

$ 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: -

3
Establecer arbitrario ctimeno es fácil de hacer. Pregunta relacionada sobre SO.
jw013

Respuestas:


23

No puede cambiar el ctime por medios ordinarios. Esto es así por diseño: el ctime siempre se actualiza al actual cuando cambia cualquiera de los metadatos del archivo, y no hay forma de imponer un ctime diferente. Para cambiar el tiempo de un archivo, debe realizar una de las siguientes acciones:

  • Establezca la hora del sistema en la hora c que desea imponer, luego toque el archivo y luego restablezca la hora del sistema.
  • Modifique el kernel para agregar una interfaz para cambiar el ctime.
  • Acceda a la imagen del disco directamente (por ejemplo, con debugfs) y haga girar los bits en el disco (no lo haga mientras el sistema de archivos está montado).

2
Establecer la hora del sistema y chmod funcionó para mí. Vea el script aquí: stackoverflow.com/questions/16126992/…
gaoithe

12

Tiene la respuesta en la pregunta SO relacionada señalada por jw013, para extX, en 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

4

El tiempo de un archivo se actualiza cuando se cambia cualquiera de los metadatos.

$ 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

pero cómo modificarlo sin actualizarlo
Someone1234

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.