Как я могу изменить дату изменения файла?

23

Как я могу изменить дату «изменения»?

$ 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: -
Someone1234
источник
3
Задать произвольно ctimeнелегко. Похожий вопрос по SO.
jw013

Ответы:

23

Вы не можете изменить ctime обычными средствами. Это сделано специально: ctime всегда обновляется до текущего, когда вы меняете какие-либо метаданные файла, и нет никакого способа навязать другое ctime. Чтобы изменить время файла, необходимо выполнить одно из следующих действий:

  • Установите системное время на ctime, которое вы хотите наложить, затем коснитесь файла, затем сбросьте системное время.
  • Модифицируйте ядро, чтобы добавить интерфейс для изменения ctime.
  • Получите прямой доступ к образу диска (например, с помощью debugfs) и переверните биты на диске (не делайте этого, пока смонтирована файловая система).
Жиль "ТАК - перестань быть злым"
источник
2
Установка системного времени и chmod у меня работала. Смотрите сценарий здесь: stackoverflow.com/questions/16126992/…
gaoithe
12

У вас есть ответ на соответствующий вопрос SO, указанный jw013 для extX, на размонтированном диске :

# 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

Ctime файла обновляется при изменении любых метаданных.

$ 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
Игнасио Васкес-Абрамс
источник
но как изменить его без обновления
Someone1234