Marcas de tiempo de archivos: mtime, ctime y atime en Linux

Las marcas de tiempo son registros de las horas en que se realizan acciones en los archivos. Una marca de tiempo es útil porque mantiene registros de cuándo se accedió, modificó o agregó un archivo. Los archivos de Linux tienen 3 marcas de tiempo registradas por la computadora: 

  • Marca de tiempo de acceso (atime): que indica la última vez que se accedió a un archivo.
  • Marca de tiempo modificada (mtime): que es la última vez que se modificó el contenido de un archivo.
  • Change timestamp (ctime): que hace referencia a la última vez que se cambiaron algunos metadatos relacionados con el archivo.

En Linux, una marca de tiempo en realidad se almacena como una cantidad de segundos en lugar de una fecha y hora. Este número de segundos se refiere a la cantidad de tiempo desde las 00:00:00 del 1 de enero de 1970, que es la época de Unix. Sin embargo, cuando un usuario desea que se muestre una marca de tiempo, Linux la traducirá a un formato legible por humanos, de modo que se muestre como fecha y hora. Los usuarios pueden ver las marcas de tiempo usando el comando ls o el comando stat.

mtime:

La marca de tiempo modificada (mtime) indica la última vez que se modificó el contenido de un archivo. Por ejemplo, si se agregaron, eliminaron o reemplazaron nuevos contenidos en un archivo, se cambia la marca de tiempo modificada. Para ver la marca de tiempo modificada, podemos simplemente usar el comando ls con la opción -l.

Syntax:
ls -l [filename]

ctime:

A diferencia de mtime, que solo está relacionado con el contenido dentro de un archivo, la marca de tiempo cambiada indica la última vez que se cambiaron algunos metadatos de un archivo. Por ejemplo, si se modificó la configuración de permisos de un archivo, mtime lo indicará. Para ver la marca de tiempo modificada, podemos usar la opción -lc con el comando ls de la siguiente manera:

Syntax:
ls -lc [filename]

un momento:

La marca de tiempo de acceso (atime) se refiere a la última vez que un usuario leyó un archivo. Es decir, un usuario mostraba el contenido de un archivo utilizando cualquier programa adecuado, pero no modificaba necesariamente nada. Para ver una marca de tiempo de acceso usando el comando ls, usamos la opción -lu seguida del nombre del archivo.

Syntax:
ls -lu [filename]

comando de estadísticas:

El comando stat se puede usar para ver todas las marcas de tiempo de un archivo simultáneamente.

Syntax:
stat [filename]

Tabla de comparación

La siguiente tabla resume la diferencia entre las tres marcas de tiempo que mencionamos:

  Se modifican los contenidos del archivo Se modifican los metadatos  Archivo accedido sin modificación Comando a usar
mtime Cambios Ningún cambio Ningún cambio ls -l o estadística
ctime Cambios Cambios Ningún cambio ls -cl o estadísticas
un momento Cambios Ningún cambio Cambios ls -ul o estadística

Para explicar más el concepto, examinaremos un archivo llamado test.txt, se realizaron los siguientes cambios en el archivo:

Crear el archivo

El archivo se creó a las 14:04 el 25/03/2021 usando el comando nano. También podemos usar el comando táctil o cualquier editor de texto. Inicialmente, agregamos 1 línea al archivo

Comando para crear archivo:

nano test.txt

File Timestamps - mtime, ctime and atime in Linux

Inicialmente, todas las marcas de tiempo muestran la hora en que se creó el archivo. La siguiente imagen muestra un ejemplo del uso del comando stat para ver las 3 marcas de tiempo. En esta imagen, se muestran las marcas de tiempo iniciales, que muestran la hora en que se creó el archivo. El número +004 a la derecha de cada marca de tiempo se conoce como desplazamiento de zona horaria, lo que indica que la zona horaria está +004 horas por delante de UTC. La fecha y la hora mostradas se convierten de UTC a la zona horaria local cuando se muestran al usuario. También podemos notar que el comando stat es muy exacto al mostrar los segundos en una marca de tiempo.

Dominio:

stat test.txt

File Timestamps - mtime, ctime and atime in Linux

Alternativamente, el comando ls se puede usar para ver cada marca de tiempo individualmente de la siguiente manera:

Dominio:

mtime: ls -l test.txt
ctime: ls -cl test.txt
atime: ls -ul test.txt

En los siguientes pasos, haremos algunos cambios en el archivo y observaremos el cambio en las marcas de tiempo usando el comando stat. El comando ls también se puede usar.

Modificar el archivo

Se accedió al archivo y se le agregó una nueva línea a las 14:22 del 25/03/2021 usando el editor de texto nano (se puede usar cualquier editor de texto).

Dominio:

nano test.txt

File Timestamps - mtime, ctime and atime in Linux

Usando el comando stat, podemos ver que las 3 marcas de tiempo se cambiaron a 14:22. 

Dominio:

stat test.txt

File Timestamps - mtime, ctime and atime in Linux

Cambio de metadatos

Los permisos del archivo se cambiaron a las 14:36 ​​del 25/3/2021 usando el comando chmod.

Dominio:

chmod 777 test.txt

Notamos que después de cambiar los permisos, tanto ctime como atime cambiaron a 14:36. Este no es el caso con mtime ya que solo cambia cuando se modifican los contenidos dentro del archivo. Por lo tanto, mtime todavía está a las 14:22.

Dominio:

stat test.txt

File Timestamps - mtime, ctime and atime in Linux

Abrir el archivo sin hacer cambios

El archivo se abrió en el editor de texto nano, pero no se realizaron cambios a las 14:55 del 25/3/2021.

Dominio:

nano test.txt

Desde la salida del comando stat, podemos observar que la única marca de tiempo que cambió a 14:55 es la marca de tiempo de acceso. Esto se debe a que no se modificó ningún dato. Por lo tanto, ctime permanece en 14:36 ​​mientras que mtime permanece en 14:22.

Dominio:

stat test.txt

File Timestamps - mtime, ctime and atime in Linux

 

Publicación traducida automáticamente

Artículo escrito por arwaaalkindi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *