GNU/Linux >> Tutoriales Linux >  >> Linux

Marcas de tiempo de archivos en Linux:atime, mtime, ctime Explicación

En Linux, cada archivo tiene algunas marcas de tiempo que proporcionan análisis cruciales sobre cuándo se modificaron o cambiaron el archivo o sus atributos. Veamos estas marcas de tiempo en detalle.

¿Qué son las marcas de tiempo de Linux?

Cualquier archivo en Linux tiene típicamente estas tres marcas de tiempo:

  • atime – tiempo de acceso
  • mtime – modificar hora
  • ctime – cambiar la hora

ahora

atime significa tiempo de acceso. Esta marca de tiempo le indica cuándo fue la última vez que se accedió al archivo. Por acceso, significa si usó cat, vim, less o alguna otra herramienta para leer o mostrar el contenido del archivo.

mtime

mtime significa tiempo de modificación. Esta marca de tiempo le indica cuándo fue la última vez que se modificó el archivo. Modificar significa si el contenido de un archivo se modificó al editarlo.

ctime

ctime significa tiempo de cambio de estado. Esta marca de tiempo le indica cuándo fue la última vez que se cambiaron la propiedad y los metadatos del archivo. Los metadatos incluyen permisos de archivo, propiedad, nombre y ubicación del archivo.

¿Cómo ver las marcas de tiempo de un archivo?

Puede usar el comando stat para ver todas las marcas de tiempo de un archivo. Usar el comando stat es muy simple. Solo necesita proporcionar el nombre de archivo con él.

stat <filename>

La salida será así:

stat abhi.txt 
  File: abhi.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 10305h/66309d	Inode: 11936465    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-08-30 12:19:54.262153704 +0530
Modify: 2018-08-30 12:19:54.262153704 +0530
Change: 2018-08-30 12:19:54.262153704 +0530
 Birth: -

Puede ver las tres marcas de tiempo (acceso, modificación y cambio) en el resultado anterior. Las tres marcas de tiempo son iguales aquí porque acabo de crear este archivo vacío con el comando táctil.

Ahora modifiquemos estas marcas de tiempo.

Si uso el comando less para leer el archivo, solo cambiará el tiempo de acceso porque el contenido y los metadatos del archivo siguen siendo los mismos.

$ less abhi.txt 
$ stat abhi.txt 
   File: abhi.txt
   Size: 0             Blocks: 0          IO Block: 4096   regular empty file
 Device: 10305h/66309d    Inode: 11936465    Links: 1
 Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
 Access: 2018-08-30 12:25:13.794471295 +0530
 Modify: 2018-08-30 12:19:54.262153704 +0530
 Change: 2018-08-30 12:19:54.262153704 +0530
  Birth: -

Ahora vamos a cambiar el tiempo de modificación. Usaré el comando cat para agregar texto nuevo a este archivo. Esto evitará el cambio en el tiempo de acceso.

$ cat >> abhi.txt 
 demo text
 ^C
 $ stat abhi.txt 
   File: abhi.txt
   Size: 10            Blocks: 8          IO Block: 4096   regular file
 Device: 10305h/66309d    Inode: 11936465    Links: 1
 Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
 Access: 2018-08-30 12:25:13.794471295 +0530
 Modify: 2018-08-30 12:32:34.751320967 +0530
 Change: 2018-08-30 12:32:34.751320967 +0530
  Birth: -

¿Notaste algo raro? Modificó el archivo y esperaba que se cambiara mtime, pero también cambió ctime.

Recuerde, ctime siempre se cambia con mtime. Es porque mientras mtime está bajo el control del usuario, ctime está controlado por el sistema. Representa cuándo fue la última vez que se cambiaron los bloques de datos o metadatos de un archivo. Si modifica el archivo, los bloques de datos cambian y, por lo tanto, se cambia ctime.

Puede cambiar ctime solo modificando los permisos de archivo mediante los comandos chmod o chgrp, pero no puede modificar mtime sin modificar ctime.

Tampoco puede cambiar ctime en el pasado por medios normales. Es una especie de función de seguridad porque le indica la última vez que se modificó el archivo. Incluso si alguien modifica mtime y lo configura en el pasado con fines maliciosos, ctime indicará la hora real en que se cambió mtime.

Recuerda :ctime siempre será modificado por mtime change.

¿Cuál es el uso de las marcas de tiempo de los archivos?

Ayuda mucho en el análisis. Puede haber una serie de situaciones en las que necesite consultar las marcas de tiempo de un archivo. Por ejemplo, puede ver si un archivo se modificó recientemente o no cuando se suponía que debía modificarse.

Uno de mis usos favoritos fue localizar archivos de registro de una aplicación con mtime. Ejecute la aplicación y simplemente vaya al directorio principal de la aplicación y busque los archivos que se han modificado en los últimos minutos.

Ya te mostré anteriormente que también puede ayudar a analizar si alguien accedió a los archivos o los modificó maliciosamente. Las marcas de tiempo juegan un papel importante en tales situaciones.

¿Cómo saber cuándo se creó originalmente un archivo?

¿Notó la última línea de salida del comando stat? Dice 'Nacimiento'. Puede adivinar que esto representa el mapa de tiempo cuando el archivo "nació" (o se creó para ser más precisos).

En realidad, hay una marca de tiempo más llamada tiempo de creación (cr). No todos los sistemas de archivos admiten esta marca de tiempo. Ext4 es uno de los sistemas de archivos populares de Linux y, aunque admite la marca de tiempo de creación, el comando stat en la actualidad no puede mostrarlo. Tal vez las futuras versiones del comando stat muestren la marca de tiempo de creación en la sección Nacimiento.


Linux
  1. Comando wc de Linux explicado para principiantes (6 ejemplos)

  2. Enlaces duros y enlaces blandos en Linux explicados

  3. Linux:¿qué sistemas de archivos en Linux almacenan el tiempo de creación?

  4. Comprender las marcas de tiempo de los archivos de Mac

  5. Obtenga el tiempo de creación de archivos con Python en Linux

Comando de tiempo de Linux

Comando Linux cksum explicado para principiantes (con ejemplos)

Explicación del comando Stat de Linux

Cómo editar un archivo sin cambiar sus marcas de tiempo en Linux

Marcas de tiempo de archivos de Linux explicadas con ejemplos

Permisos y propiedad de archivos de Linux explicados con ejemplos