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, SetFilee 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 stato 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.)