GNU/Linux >> Linux Esercitazione >  >> Linux

Ottieni l'età del file specificato?

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:

  1. Accesso
  2. Modificato
  3. 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?

Linux
  1. `^m` E come sbarazzartene?

  2. Ottieni il tempo di creazione/creazione del file??

  3. Ottieni il tempo di creazione del file con Python su Linux

  4. Come ottenere la data/ora di creazione del file in Bash/Debian?

  5. Ottieni l'ora corrente in ore e minuti

Come ottenere la data e l'ora correnti in Python

Ottieni il file più recente in una directory su Linux

Come ottenere il percorso completo di un file?

Comando per ottenere il tempo in millisecondi

Ottieni la lunghezza MP3 in Linux / FreeBSD

backup in tempo reale se il file è cambiato?