Trabajando con la fecha de creación de archivos en Linux: lo que necesitas saber

Popular:
¡MEJORA LA CONFIGURACIÓN DE TU SERVIDOR! APLICAR AVA Y LANZA CON UN 15% DE DESCUENTO
USA EL CÓDIGO PROMOCIONAL:

A diferencia de Windows, Linux no siempre almacena la fecha de creación del archivo como parte de los metadatos predeterminados del filesystem, especialmente en filesystems más antiguos o tradicionales como ext3. Sin embargo, los filesystems más nuevos y las versiones del kernel ofrecen soporte parcial.

✅ Lo que debes saber:

  1. Marcas de tiempo estándar en Linux:

    • atime: Hora del último acceso

    • mtime: Hora de la última modificación

    • ctime: Hora del último cambio de estado (no creación)

  2. Soporte de tiempo de creación (btime):

    • Disponible en ext4, Btrfs, XFS y ZFS (con salvedades)

    • Requiere Linux kernel 4.11+ para soporte en ext4

Cómo comprobar la fecha de creación del archivo

🧪 1. Usando stat (en filesystems compatibles)

stat <filename>

Busca el campo Birth: o btime (si es compatible).

🧪 2. Usando debugfs (para ext4)

sudo debugfs /dev/sdX

Luego dentro de debugfs:

stat /path/to/file

Es posible que veas

Inode Created

o un campo similar.

3. Usando ls -lt –time=birth (si es compatible)

ls -lt --time=birth

Nota: Puede que no funcione en todas las distros o filesystems.

Soluciones alternativas

  • Usar auditd para registrar eventos de creación en tiempo real

  • Rastrear la creación de archivos manualmente mediante scripts o control de versiones

  • Usar herramientas específicas del filesystem (como xfs_io para XFS)

Consejo para desarrolladores

Si estás haciendo scripting o programando en Linux y necesitas tiempos de creación de forma fiable:

  • Almacena las marcas de tiempo de creación manualmente en los metadatos del archivo xattr o en logs

  • O usa una base de datos/filesystem que lo registre de forma nativa