Come posso cambiare la data di "modifica" del file?


23

Come posso cambiare la data di '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
L'impostazione arbitraria ctimenon è facile. Domanda correlata su SO.
jw013,

Risposte:


23

Non è possibile modificare l'ora in modo ordinario. Questo è di progettazione: il ctime viene sempre aggiornato alla corrente quando si modifica uno qualsiasi dei metadati del file e non c'è modo di imporre un diverso ctime. Per modificare il tempo di un file, è necessario effettuare una delle seguenti operazioni:

  • Impostare l'ora di sistema sull'ora che si desidera imporre, quindi toccare il file, quindi reimpostare l'ora di sistema.
  • Modifica il kernel per aggiungere un'interfaccia per cambiare il ctime.
  • Accedi direttamente all'immagine del disco (ad es. Con debugfs) e modifica i bit sul disco (non farlo mentre il filesystem è montato).

2
L'impostazione dell'ora di sistema e chmod ha funzionato per me. Vedere lo script qui: stackoverflow.com/questions/16126992/...
Gaoithe

12

Hai la risposta sulla relativa domanda SO indicata da jw013, per extX, sul disco non montato :

# 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

Il tempo di trasmissione di un file viene aggiornato quando viene modificato uno qualsiasi dei metadati.

$ 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

ma come modificarlo senza aggiornarlo
Someone1234

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.