In Mac OS X sembrano esserci quattro diversi timestamp associati a un file. Queste informazioni temporali non sono sempre aggiornata indipendentemente l'uno dall'altro, ma si può avere un certo controllo individuale con un po 'di cura e con l'uso di touch
, SetFile
e chown
(o chmod
). Per vedere questo, sperimentiamo e creiamo un nuovo file dal prompt dei comandi #
:
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
La prima data elencata è ora dell'ultimo accesso ( atime
), la seconda è l'ora dell'ultima modifica ( mtime
), la terza è l'ultima modifica dello stato ( ctime
), la quarta è l'ora della creazione del file (nascita, Btime
), vedere man lstat
.
Per modificare il tempo di accesso ( atime
) a un orario specificato utilizzare:
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Per modificare l'ora di modifica ( mtime
) e l' ora di creazione del file ( Btime
) in un orario specificato, utilizzare:
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
Apparentemente anche questo aggiorna automaticamente l'ora dell'ultimo cambio di stato ( ctime
) all'ora di sistema corrente!
Per modificare solo il momento della creazione / nascita ( Btime
) in un determinato momento, utilizzare (come proposto da altri sopra):
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
Per modificare solo l'ora dell'ultima modifica dello stato ( ctime
) all'ora di sistema corrente, utilizzare ad esempio:
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
dove username
è il proprietario del file (come riportato da stat
o ls -l
). Questo non cambia la proprietà del file, ma accede all'inode del file e lo registra come ora dell'ultima modifica dello stato. Sfortunatamente, non è possibile specificare l'ora qui esplicitamente se non cambiando l'ora del computer ...
In sintesi, per poter cambiare i quattro timestamp in modo indipendente, è possibile utilizzare (in questo ordine per gli ultimi 3):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
- [imposta la data di sistema]
chown username <file>
[ripristina la normale data di sistema]
(Naturalmente, reimpostare la data del sistema potrebbe non essere un'operazione senza rischi, sei stato avvisato.)