Comprensione dei timestamp dei file Linux: mtime, ctime e atime

Comprensione dei timestamp dei file Linux: mtime, ctime e atime

Il sistema operativo Linux tiene traccia di tre timestamp per ogni file sul tuo sistema. Questi timestamp ti consentono di scoprire quando è stato aggiornato l'ultimo file. Ma cosa significano tutti? E come fai a scoprire questi tempi per un file? C'è una differenza quando si tratta di directory?





Una comprensione di atime, ctime e mtime può rispondere a tutte queste domande. Questi sono i tre timestamp che i filesystem Unix tengono traccia. Se hai bisogno di scoprire i dettagli su cosa è cambiato e quando, continua a leggere.





Quali sono i tre timestamp Unix?

Ad ogni file sono associati tre timestamp. Linux li memorizza in Formato dell'ora Unix che misura i secondi dall'epoca. I tre timestamp sono comunemente indicati come atime, ctime e mtime.





Il mtime è il più comune e spesso il più utile. sta per ora modificata . È l'ora in cui il contenuto del file è stato scritto l'ultima volta su disco.

Leggermente diverso è il ctime che sta per cambia ora . Questo timestamp tiene traccia delle modifiche ai metadati come proprietà e autorizzazioni. Include la ridenominazione di un file, almeno sui tipici sistemi operativi Linux moderni. Ma si aggiorna anche quando il contenuto del file cambia, quindi è sempre aggiornato come mtime.



Il terzo timestamp è il un tempo , che memorizza l'ultima volta che qualcuno ha avuto accesso al file.

migliori colonne sonore di videogiochi per studiare

Come si applicano i timestamp alle directory

Una directory Linux è, essenzialmente, un elenco dei file in quella directory. Quindi la creazione di un file all'interno di una directory aggiornerà mtime di quella directory. Elencare i file nella directory, usando il ls comando, ad esempio, aggiorna il suo tempo di accesso. E, come con un file, la modifica dei permessi o del nome di una directory ne aggiorna il ctime.





E il tempo di creazione?

Potrebbe sorprenderti sapere che Linux semplicemente non tiene traccia del tempo di creazione. Potresti inizialmente presumere che ctime sta per tempo di creazione. Allo stesso modo, potresti considerarlo una cosa molto utile per poterlo scoprire.

Molte applicazioni salvano i file creandoli ogni volta da zero. Ciò renderebbe fuorviante l'uso di un tempo di creazione.





Come visualizzare i diversi timestamp

Il modo più semplice per ottenere informazioni sul timestamp è con il ls comando . Il formato lungo predefinito mostra i dettagli per mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Puoi invece visualizzare l'ora utilizzando il -u bandiera:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

L'ultima riga conferma che l'mtime di questo file è diverso dall'atime. Infine, usa il -C flag per visualizzare ctime:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Questa volta confermiamo che tutti e tre i tempi sono distinti e corretti: abbiamo modificato, quindi effettuato l'accesso, quindi modificato il file, in quell'ordine.

Un'alternativa a ls è il stato comando. Questo comando visualizza i dettagli di basso livello dall'inode del file. Rende più facile controllare tutte e tre le volte contemporaneamente. Si aggira anche il problema del non intuitivo -u bandiera. Ecco un esempio di output per lo stesso file:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Come aggiornare i timestamp

Il tocco Il comando cambia i tempi di modifica e accesso di un file. È anche un modo conveniente per creare un file vuoto, cosa che farà se il file non esiste già:

come ripristinare i messaggi cancellati su facebook
touch tmp

Per impostazione predefinita, imposterà mtime e atime all'ora corrente. Puoi impostare un orario diverso con il -T bandiera:

touch -t 202103061200 tmp

Puoi anche impostare solo mtime o atime con il -m e -a bandiere rispettivamente:

touch -t 202103061300 -m tmp

Nota che ctime si aggiorna sempre quando impostiamo atime o mtime.

Come trovare file in base ai timestamp

Il trova command è un altro strumento che agisce sui timestamp. Può filtrare i file in base a atime, ctime o mtime. Per esempio:

find . -amin 15

troverà i file a cui si è avuto accesso esattamente 15 minuti fa, mentre:

find . -mtime -2

troverà i file modificati negli ultimi due giorni.

Linux tiene traccia di ogni file tre volte

Il timestamp del file più comunemente indicato è mtime. Questa è la data e l'ora mostrate, ad esempio, in un elenco di file. Ma anche gli altri due timestamp possono essere utili, a condizione che tu capisca a cosa si riferiscono. In particolare, ricorda sempre che ctime rappresenta modificare tempo, non creazione tempo.

Comandi come touch e stat sono membri utili della casella degli strumenti della riga di comando di Linux. Questi comandi miglioreranno il tuo flusso di lavoro Linux consentendoti di creare nuovi file rapidamente.

Condividere Condividere Tweet E-mail Il cheat sheet di riferimento per i comandi di Linux

Questo semplice cheat sheet ti aiuterà a familiarizzare con il terminale della riga di comando di Linux in pochissimo tempo.

cosa posso fare con un server di casa?
Leggi Avanti Argomenti correlati
  • Linux
  • Gestione dei file
  • Distribuzione Linux
Circa l'autore Bobby Jack(58 articoli pubblicati)

Bobby è un appassionato di tecnologia che ha lavorato come sviluppatore software per quasi due decenni. È appassionato di giochi, lavora come editor di recensioni presso Switch Player Magazine ed è immerso in tutti gli aspetti dell'editoria online e dello sviluppo web.

Altro da Bobby Jack

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti