Métodos de pago Abuse

Cómo ver la fecha de creación de un archivo en Linux

22.04.2022, 18:05

En un sistema Linux, las propiedades de un archivo en el gestor de archivos sólo muestran información sobre la fecha del último acceso al archivo y la fecha de modificación. Pero la fecha de creación no se muestra allí. A veces es necesario mirarla, por ejemplo, para saber cuándo se está grabando el registro. En estas instrucciones te diremos cómo ver qué datos se almacenan en los sistemas de archivos Linux y explicaremos cómo averiguar la fecha de creación de un archivo Linux. Se mencionarán dos formas convenientes a la vez, cada una con sus propias peculiaridades.

Fecha de creación del fichero

El estándar POSIX especifica sólo 3 tipos de marcas de tiempo que un sistema de ficheros debe almacenar:

  • atime - hora del último acceso al fichero.
  • mtime - hora de la última modificación del contenido.
  • ctime - hora de la última modificación de los derechos de acceso o del propietario.

Por eso, en los sistemas de archivos antiguos a menudo es imposible ver información sobre la fecha de creación del archivo. Pero en los sistemas de archivos modernos (ext4, zfs, XFS, etc.) ya se almacena.

Los datos sobre la fecha de creación se registran en un campo especial:

  • Ext4 - crtime
  • ZFS - crtime
  • XFS - crtime
  • Btrfs - otime
  • JFS - di_otime

Hay dos métodos para ver esta información: stat y debugfs. Sin embargo, el primer método no es adecuado para los usuarios de todas las distribuciones de Linux. El segundo método es universal, pero no tan fácil de usar. Vamos a tratar cada uno de ellos por separado.

Usando Stat

La utilidad stat muestra información detallada sobre un archivo. Entre otras cosas, muestra la fecha de creación del archivo Linux. Para ejecutarla en el terminal, basta con especificar la ruta al archivo. Por ejemplo, veamos la información sobre la imagen pic_1.jpeg almacenada en el catálogo /home/root-user/Pictures:

$ stat /home/root-user/Pictures/pic_1.jpeg

La información necesaria se registra en la columna Creado. Y utilizando la opción -c puede establecer ciertas reglas de formato para la salida de la información, por ejemplo, dejando sólo la columna necesaria:

$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg

Cómo ver la fecha de creación de un archivo en Linux

Pero hay una pequeña dificultad. En algunas distribuciones de Linux este campo estará vacío cuando se utilice la utilidad stat.

Cómo ver la fecha de creación de un archivo en Linux

La razón principal es que la salida se muestra en statx(2). La shell se añadió a la biblioteca glibc en la versión 2.28. Es decir, el soporte para esta shell apareció en el conjunto de utilidades básicas del sistema GNU coreutils 8.31. Para comprobar la versión, ejecute este comando:

$ stat --version

Cómo ver la fecha de creación de un archivo en Linux

En consecuencia, stat sólo podrá dar salida a los datos de creación de archivos si se dan las condiciones específicas descritas anteriormente. Por ejemplo, en la distribución Ubuntu 21.10 todo funciona sin problemas, pero en Ubuntu 20.04 el campo estará vacío.

Uso de DebugFS

La utilidad DebugFS no tiene restricciones de versión. Siempre funcionará. Pero su procedimiento de uso es un poco más complicado. Esto se debe a que para ver la fecha de creación de un archivo a través de debugfs, necesita conocer su número de inodo y el sistema de archivos. Para obtener el inodo, utilice el comando ls con la opción -i, especificando la ruta al archivo:

$ ls -i /home/root-user/scripts/main_script.txt

Cómo ver la fecha de creación de un archivo en Linux

Para ver el sistema de archivos, el comando df será muy útil:

$ df /home/root-user/scripts/main_script.txt

Cómo ver la fecha de creación de un archivo en Linux

Ahora tienes todos los datos necesarios y puedes pasar a la utilidad debugfs. Necesitas pasarle la opción -R, especificar el número de inodo y luego el nombre del sistema de archivos:

$ sudo debugfs -R 'stat <28>' /dev/sda5

Cómo ver la fecha de creación de un archivo en Linux

Después de eso, podrás encontrar en el terminal el campo donde se almacena la fecha de creación. En nuestro caso es crtime.

Esto completa las instrucciones.