A differenza di Windows, Linux non sempre memorizza la data di creazione del file come parte dei metadati predefiniti del filesystem, soprattutto nei filesystem più vecchi o tradizionali come ext3. Tuttavia, i filesystem e le versioni del kernel più recenti offrono un supporto parziale.

cosa c’è da sapere:

  1. Timestamp standard in Linux:

    • atime: Ora dell’ultimo accesso

    • mtime: Ora dell’ultima modifica

    • ctime: Ora dell’ultimo cambiamento di stato (non della creazione)

  2. Tempo di creazione (btime) Supporto:

    • Disponibile su ext4, Btrfs, XFS e ZFS (con avvertenze)

    • Richiede il kernel Linux 4.11 per il supporto di ext4

Come controllare la data di creazione dei file

🧪 1. Usando stat (sui filesystem supportati)

stat

Cercare il campo Birth: o btime (se supportato).

🧪 2. Usare debugfs (per ext4)

sudo debugfs /dev/sdX

Poi all’interno di debugfs:

stat /path/to/file

Si può vedere il campo Inode Created o un campo simile.

3. Usare ls -lt –time=birth (se supportato)

ls -lt --time=nascita

Nota: potrebbe non funzionare su tutte le distro o i filesystem.

Soluzioni alternative

  • Utilizzare auditd per registrare gli eventi di creazione in tempo reale

  • Tracciare manualmente la creazione dei file tramite script o controllo di versione

  • Utilizzare strumenti specifici per il filesystem (come xfs_io per XFS)

Suggerimento per gli sviluppatori

Se si esegue lo scripting o la programmazione in Linux e si ha bisogno di tempi di creazione affidabili:

  • Memorizzare manualmente i timestamp di creazione nei metadati dei file xattr o nei log

  • Oppure utilizzare un database/filesystem che registri questi dati in modo nativo