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.
El estándar POSIX especifica sólo 3 tipos de marcas de tiempo que un sistema de ficheros debe almacenar:
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:
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.
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
Pero hay una pequeña dificultad. En algunas distribuciones de Linux este campo estará vacío cuando se utilice la utilidad stat.
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
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.
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
Para ver el sistema de archivos, el comando df
será muy útil:
$ df /home/root-user/scripts/main_script.txt
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
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.