¿El cambio de nombre afecta la modificación del archivo o el tiempo de acceso? ¿Hay una lista en algún lugar de lo que cambia qué veces?
¿El cambio de nombre afecta la modificación del archivo o el tiempo de acceso? ¿Hay una lista en algún lugar de lo que cambia qué veces?
Respuestas:
El cambio de nombre actualiza el tiempo de cambio:
$ mkdir tmp
$ cd tmp
$ echo abc > a
$ stat a
File: `a'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000 / zelda Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
Birth: -
$ mv a b
$ stat b
File: `b'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ zelda) Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
Birth: -
El tiempo de acceso se actualiza al leer el contenido de un archivo. Modifique cuando realmente actualice el archivo (abrir para modificar no es suficiente para cambiar el tiempo de modificación).
cp
y mv
, y vi
para la edición. Otros editores, o su escritorio pueden manejar la tarea de manera diferente y tener más marcas de tiempo actualizadas.
mv
Una modificación que afecta el tiempo m del archivo es un cambio de los datos del archivo: una escritura de una cantidad de bytes distinta de cero, o un truncamiento que termina modificando el archivo. La creación de un archivo también establece su mtime en la fecha actual. Simplemente abrir un archivo para escribir no afecta el tiempo m, suponiendo que el archivo no se crea o se trunca.
La lectura de un archivo (si se lee un número distinto de cero de bytes) o la ejecución de un archivo establece su tiempo a la hora actual. Simplemente abrir un archivo para leer nunca afecta el tiempo. En Linux, esto ahora está deshabilitado por defecto en la mayoría de las circunstancias; la atime
opción de montaje restaura las actualizaciones de atime, mientras que la noatime
opción de montaje las desactiva por completo.
Los programas pueden cambiar el mtime y el atime de un archivo; El comando básico para hacer esto es touch
. Algunos programas de copia de archivos configuran la copia al mismo tiempo que el original, por ejemplo cp -p
o rsync -t
.
Un cambio que afecta el ctime del archivo es un cambio de los metadatos del archivo: permisos, propietario, tiempos, recuento de enlaces, etc. Cambiar el nombre de un archivo también actualiza su ctime. Los cambios en los datos del archivo también afectan el ctime, pero la lectura de un archivo no cambia el ctime incluso si cambia el atime. Es imposible cambiar el tiempo c de cualquier otra manera que no sea establecer el tiempo actual (incluso la raíz está restringida, pero la raíz puede establecer indirectamente el tiempo c cambiando primero la hora del sistema o accediendo directamente a la partición que contiene el sistema de archivos).
Una observación empírica adicional no mencionada por las otras respuestas:
Al abrir el archivo para escribir con O_TRUNC
mtime cambia, incluso si el archivo estaba originalmente vacío.
Este parece ser el caso al menos en ext3 en Linux 3.10.