Come posso ottenere l'età di un determinato file in almeno giorni?
Conosco bene ls -lh
e comandi simili. Voglio qualcosa che funzioni in questo modo:
getfage <FILE> # prints out '12d' (12 days)
Inoltre, questo deve essere in qualche modo multipiattaforma poiché mi piacerebbe usarlo anche su Mac OS X, ma il caso d'uso principale è sul mio Linux-box.
NOTA
Poiché Linux non tiene traccia del tempo di creazione, sto cercando una doppia soluzione:una per mtime (linux) – cioè l'ultima volta che detto file è stato modificato –e uno per Mac OS X, che può gestire mtime o ora di creazione.
Risposta accettata:
Unix non tiene traccia di una data di creazione. Le uniche informazioni disponibili sono in genere le ultime volte in cui i file sono stati:
- Accesso
- Modificato
- Cambiato
- 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)
(Da questa risposta )
Puoi ottenere le date relative a un particolare file usando il stat
comando.
Esempio
$ stat ffmpeg
File: `ffmpeg'
Size: 19579304 Blocks: 38248 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 10356770 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-11-26 10:49:09.908261694 -0500
Modify: 2013-11-02 17:05:13.357573854 -0400
Change: 2013-11-02 17:05:13.357573854 -0400
OSX e HFS
Se stai usando OSX, il filesystem utilizzato in quel Unix è HFS. Questo è uno dei pochi (di cui sono a conoscenza) che mantiene la data di creazione all'interno del filesystem, insieme al tempo di modifica ecc. simile ad altri Unix.
estratto
Un record di file memorizza una varietà di metadati sul file tra cui il suo CNID, la dimensione del file, tre timestamp (quando il file è stato creato, l'ultima modifica, l'ultimo backup), le prime estensioni del file dei dati e dei fork e dei puntatori delle risorse ai primi record di estensione di dati e risorse del file nel file di overflow dell'estensione. Il record del file memorizza anche due campi da 16 byte che vengono utilizzati dal Finder per memorizzare gli attributi del file, inclusi elementi come il codice creatore, il codice del tipo, la finestra in cui dovrebbe apparire il file e la sua posizione all'interno della finestra.
Data e ora
I timestamp sono sempre mantenuti nel filesystem, quindi sei limitato da qualsiasi tracciamento temporale offerto attraverso di essi (EXT3, EXT4, XFS, ecc.).
Correlati:perché InnoDB memorizza tutti i database in un unico file?Filesystem
Se sei curioso, dai un'occhiata a questo argomento di Wikipedia intitolato:Confronto dei file system. Ha l'elenco più completo di filesystem di cui sono a conoscenza insieme a una bella tabella delle varie funzionalità e allo stato se è supportato o meno all'interno di un determinato filesystem.
Riferimenti
- Come trovare la data di creazione del file?
- Come faccio a eseguire un ls e quindi ordinare i risultati per data di creazione?
- Elenca i file creati la domenica
- Ottieni il file creato/ora di creazione?
- Perché il tempo di Unix inizia al 1970-01-01?