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 scopri 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 tracciati dai filesystem Unix. Se hai bisogno di scoprire i dettagli su cosa è cambiato e quando, continua a leggere.

Quali sono i tre timestamp Unix?

A ogni file sono associati tre timestamp. Linux li memorizza nel file Formato 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 cambiare il tempo. 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.

instagram viewer

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

Modalità di applicazione dei 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à l'mtime di quella directory. Elenco dei file nella directory, utilizzando il ls il comando, ad esempio, aggiorna il suo tempo di accesso. E, come con un file, la modifica delle autorizzazioni o del nome di una directory ne aggiorna il ctime.

E il tempo di creazione?

Potrebbe sorprenderti apprendere che Linux semplicemente non tiene traccia del tempo di creazione. Inizialmente potresti presumere che ctime sta per tempo di creazione. Allo stesso modo, potresti considerarlo una cosa molto utile da poter scoprire.

Molte applicazioni salvano i file creandoli da zero ogni volta. Ciò renderebbe fuorviante l'utilizzo 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
Sabato 6 marzo 16:57:01 GMT 2021
$ echo "ciao, mondo"> tmp
$ ls -l tmp.txt
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Puoi invece visualizzare atime usando il -u bandiera:

$ date
Sabato 6 marzo 16:59:33 GMT 2021
$ cat tmp
Ciao mondo
$ 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 da atime. Infine, usa il file -c flag per visualizzare ctime:

$ date
Sabato 6 marzo 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 acceduto, quindi cambiato il file, in quest'ordine.

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

$ stat tmp2
File: "tmp2"
Dimensione: 13 Blocchi: 8 Blocco IO: 4096 file normale
Dispositivo: 801h / 2049d Inodo: 327688 Collegamenti: 1
Accesso: (0644 / -rw-r - r--) Uid: (1000 / ubuntu) Gid: (1000 / ubuntu)
Accesso: 2021-03-06 16: 59: 45.000000000 +0000
Modifica: 2021-03-06 16:57: 59.000000000 +0000
Modifica: 2021-03-06 17: 02: 43.000000000 +0000

Come aggiornare i timestamp

Il toccare Il comando modifica 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à:

toccare tmp

Per impostazione predefinita, imposterà mtime e atime sull'ora corrente. È possibile impostare un orario diverso con il -t bandiera:

touch -t 202103061200 tmp

Puoi anche impostare solo mtime o atime con -m-un bandiere rispettivamente:

touch -t 202103061300 -m tmp

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

Come trovare i file in base ai timestamp

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

trova. -amin 15

troverà i file a cui si accede esattamente 15 minuti fa, mentre:

trova. -mtime -2

troverà i file modificati negli ultimi due giorni.

Linux tiene traccia di ogni file tre volte

Il timestamp del file più comunemente referenziato è mtime. Questa è la data e l'ora mostrate, ad esempio, da 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, no creazione tempo.

I 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 rapidamente nuovi file.

E-mail
Cheat Sheet di riferimento dei comandi di Linux

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

Argomenti correlati
  • Linux
  • Gestione dei file
  • Linux Distro
Circa l'autore
Bobby Jack (33 articoli pubblicati)

Bobby è un appassionato di tecnologia che ha lavorato come sviluppatore di software per quasi due decenni. È appassionato di giochi, lavora come revisore per 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 suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.