Su un sistema Linux, le proprietà di un file nel file manager mostrano solo informazioni sulla data dell'ultimo accesso al file e sulla data di modifica. Ma la data di creazione non viene mostrata. A volte è necessario guardarla, ad esempio per scoprire quando viene registrato il registro. In questa istruzione vi diremo come vedere quali dati sono memorizzati nei file system di Linux e vi spiegheremo come scoprire la data di creazione di un file Linux. Verranno citati subito due metodi convenienti, ognuno con le proprie peculiarità.
Lo standard POSIX specifica solo 3 tipi di timestamp che un file system deve memorizzare:
Per questo motivo, nei vecchi file system è spesso impossibile vedere informazioni sulla data di creazione del file. Ma nei file system moderni (ext4, zfs, XFS e così via) è già memorizzata.
I dati sulla data di creazione sono registrati in un campo speciale:
Esistono due metodi per visualizzare queste informazioni: stat e debugfs. Tuttavia, il primo metodo non è adatto agli utenti di tutte le distribuzioni Linux. Il secondo metodo è universale, ma non così facile da usare. Vediamo di trattare ciascuno di essi separatamente.
L'utilità stat visualizza informazioni dettagliate su un file. Tra le altre cose, mostra la data di creazione del file Linux. Per eseguirla nel terminale, è sufficiente specificare il percorso del file. Ad esempio, esaminiamo le informazioni sull'immagine pic_1.jpeg
memorizzata nel catalogo /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Le informazioni necessarie sono registrate nella colonna Creato. E utilizzando l'opzione -c è possibile impostare alcune regole di formattazione per l'output delle informazioni, ad esempio lasciando solo la colonna necessaria:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Ma c'è una piccola difficoltà. Su alcune distribuzioni Linux questo campo sarà vuoto quando si utilizza l'utilità stat.
Il motivo principale è che l'output viene visualizzato in statx(2). La shell è stata aggiunta alla libreria glibc nella versione 2.28. Il supporto per questa shell è apparso nell'insieme di utilità di sistema di base GNU coreutils 8.31. Per verificare la versione, eseguire questo comando:
$ stat --version
Di conseguenza, stat
sarà in grado di fornire dati sulla creazione dei file solo se sono presenti le condizioni specifiche descritte sopra. Ad esempio, nella distribuzione Ubuntu 21.10 tutto funziona senza problemi, ma in Ubuntu 20.04 il campo sarà vuoto.
L'utilità DebugFS non ha restrizioni di versione. Funzionerà sempre. Ma la procedura di utilizzo è un po' più complicata. Infatti, per visualizzare la data di creazione di un file tramite debugfs, è necessario conoscere il numero di inode e il file system. Per ottenere l'inode, utilizzare il comando ls
con l'opzione -i
, specificando il percorso del file:
$ ls -i /home/root-user/scripts/main_script.txt
Per visualizzare il file system, è utile il comando df
:
$ df /home/root-user/scripts/main_script.txt
Ora avete tutti i dati necessari e potete passare all'utilità debugfs. È necessario passare l'opzione -R
, specificare il numero di inode
e il nome del file system:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Dopodiché, sarà possibile trovare nel terminale il campo in cui è memorizzata la data di creazione. Nel nostro caso è crtime.
Questo completa le istruzioni.