Ci sono 3 tipi di "timestamp":
- Accesso - l'ultima volta che il file è stato letto
- Modifica - l'ultima volta che il file è stato modificato (il contenuto è stato modificato)
- Modifica:l'ultima volta che i metadati del file sono stati modificati (ad es. autorizzazioni)
Per visualizzare queste informazioni, puoi usare stat
che fa parte di coreutils.
stat
ti mostrerà anche alcune informazioni in più come il dispositivo, gli inode, i link, ecc.
Ricorda che questo tipo di informazioni dipende molto dal filesystem e dalle opzioni di montaggio. Ad esempio, se monti una partizione con noatime
opzione, non verrà scritta alcuna informazione di accesso.
Un'utilità per modificare i timestamp sarebbe touch
.Ci sono alcuni argomenti per decidere quale timestamp cambiare (ad esempio -a per l'ora di accesso, -m per l'ora di modifica) e per influenzare l'analisi di un nuovo timestamp dato.Vedi man touch
per maggiori dettagli.
touch
può tornare utile in combinazione con cp -u
("copia solo quando il file SOURCE è più recente del file di destinazione o quando manca il file di destinazione" ) o per la creazione di file marker vuoti.
La risposta di echox è valida ma voglio aggiungere informazioni riguardanti il tempo di creazione del file.
Supporto del file system
Alcuni file system supportano una voce aggiuntiva nell'inode relativa all'ora di creazione (o ora di nascita). So che ext4 supporta questa funzionalità e anche JFS e BTRFS.
Tuttavia, la maggior parte degli strumenti e delle API non sono ancora stati aggiornati per leggere queste informazioni aggiuntive. Quindi, anche se potrebbe essere lì, non è accessibile.
Ad esempio su Ubuntu 12.04 LTS ottengo quanto segue per un file che ho creato oggi:
$ echo Just another test > /tmp/mytest
$ sleep 3
$ touch /tmp/mytest
$ sleep 2
$ cat /tmp/mytest > /dev/null
$ stat /tmp/mytest
[...]
Access: 2012-06-05 13:33:44.279774711 +0200
Modify: 2012-06-05 13:33:34.611893317 +0200
Change: 2012-06-05 13:33:34.611893317 +0200
Birth: -
$ sudo debugfs -R 'stat /tmp/mytest' /dev/sda1
[...]
ctime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012
atime: 0x4fcdee98:42b417dc -- Tue Jun 5 13:33:44 2012
mtime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012
crtime: 0x4fcdee46:01258f1c -- Tue Jun 5 13:32:22 2012
[...]
Puoi vedere che la funzione stat più recente ha un campo di nascita, sebbene l'output sembri errato. E tramite debugfs possiamo ottenere le informazioni (crtime dato che sono sul file system ext4).
supporto statistico
Dal Kernel 4.11 è ora disponibile una nuova chiamata di sistema statx, oltre a un migliore supporto dell'anno 2038 o dei file system di rete, porta anche alcune funzionalità extra come btime
o l'accesso all'ora di nascita (ora di creazione). Il supporto per ext4 dovrebbe essere nella stessa versione del kernel 4.11.
Ci sono state patch per aggiungere il supporto a questa nuova chiamata di sistema nelle versioni successive del kernel:ad es. BTRFS e F2FS nel kernel 4.13, SMB3 nel 4.14, GFS2 nel 4.15, NFS nel 4.16, ecc.
L'imminente glibc fornirà una chiamata di funzione per interrogare questa interfaccia (vedi le notizie di Phoronix sul supporto di glibc statx). Quindi possiamo aspettarci presto il supporto per questa funzionalità nello spazio utente.