GNU/Linux >> Tutoriales Linux >  >> Linux

marca de tiempo, hora de modificación y hora de creación de un archivo

Hay 3 tipos de "marcas de tiempo":

  • Acceso:la última vez que se leyó el archivo
  • Modificar:la última vez que se modificó el archivo (se modificó el contenido)
  • Cambio:la última vez que se cambiaron los metadatos del archivo (por ejemplo, permisos)

Para mostrar esta información, puede usar stat que es parte de coreutils.

stat también le mostrará más información como el dispositivo, inodos, enlaces, etc.

Recuerde que este tipo de información depende en gran medida del sistema de archivos y de las opciones de montaje. Por ejemplo, si monta una partición con el noatime opción, no se escribirá información de acceso.

Una utilidad para cambiar las marcas de tiempo sería touch Hay algunos argumentos para decidir qué marca de tiempo cambiar (p. ej., -a para la hora de acceso, -m para la hora de modificación) y para influir en el análisis de una nueva marca de tiempo determinada. Consulte man touch para más detalles.

touch puede resultar útil en combinación con cp -u ("copiar solo cuando el archivo ORIGEN es más nuevo que el archivo de destino o cuando falta el archivo de destino" ) o para la creación de archivos de marcadores vacíos.


La respuesta de echox es válida pero quiero agregar información sobre el tiempo de creación del archivo.

Compatibilidad con el sistema de archivos

Algunos sistemas de archivos admiten una entrada adicional en el inodo con respecto a la hora de creación (o la hora de nacimiento). Sé que ext4 es compatible con esta característica y también con JFS y BTRFS.

Sin embargo, la mayoría de las herramientas y la API aún no se han actualizado para leer esta información adicional. Entonces, aunque podría estar allí, no es accesible.

Por ejemplo, en Ubuntu 12.04 LTS obtengo lo siguiente para un archivo que creé hoy:

$ echo Just another test > /tmp/mytest
$ sleep 3
$ touch /tmp/mytest
$ sleep 2
$ cat /tmp/mytest > /dev/null
$ stat /tmp/mytest 
[...]
Access: 2012-06-05 13:33:44.279774711 +0200
Modify: 2012-06-05 13:33:34.611893317 +0200
Change: 2012-06-05 13:33:34.611893317 +0200
 Birth: -
$ sudo debugfs -R 'stat /tmp/mytest' /dev/sda1
[...]
 ctime: 0x4fcdee8e:91e30114 -- Tue Jun  5 13:33:34 2012
 atime: 0x4fcdee98:42b417dc -- Tue Jun  5 13:33:44 2012
 mtime: 0x4fcdee8e:91e30114 -- Tue Jun  5 13:33:34 2012
crtime: 0x4fcdee46:01258f1c -- Tue Jun  5 13:32:22 2012
[...]

Puede ver que la función estadística más reciente tiene un campo de nacimiento, aunque el resultado parece incorrecto. Y a través de debugfs podemos obtener la información (crtime ya que estoy en el sistema de archivos ext4).

soporte de statx

Ahora, desde Kernel 4.11, hay una nueva llamada al sistema statx, además de un mejor soporte de Y2038 o sistemas de archivos de red, también trae algunas características adicionales como el btime o el acceso a la hora de nacimiento (hora de creación). El soporte para ext4 debería estar en la misma versión del kernel 4.11.

Ha habido parches para agregar soporte a esta nueva llamada al sistema en versiones posteriores de Kernel:p. BTRFS y F2FS en Kernel 4.13, SMB3 en 4.14, GFS2 en 4.15, NFS en 4.16, etc.

El próximo glibc proporcionará una llamada de función para consultar esta interfaz (consulte las noticias de Phoronix sobre el soporte de glibc statx). Por lo tanto, podemos esperar soporte para esta función en el espacio del usuario muy pronto.


Linux
  1. Obtener la edad del archivo dado?

  2. Salida a Stdout y al mismo tiempo Grep en un archivo?

  3. ¿Permisos de archivo y ahorro?

  4. ¿Obtener archivo creado/hora de creación?

  5. Ubuntu - Linux - ¿Tiempo de cambio de archivo versus tiempo de modificación?

Cómo obtener la fecha y hora actuales en Python

Evite la eliminación o modificación accidental de archivos y carpetas en Linux

¿Redirigir y canalizar la salida?

Tune2fs:¿En qué zona horaria se crea la fecha y es posible cambiarla?

¿Cómo verifico en bash si un archivo se creó hace más de x tiempo?

Subprocesos y descriptores de archivos