Solo sé que ls -t y ls -f proporciona una clasificación diferente de archivos y subdirectorios en un directorio.

  • ¿Cuáles son las diferencias entre la marca de tiempo, la hora de modificación y la hora de creación de un archivo?
  • ¿Cómo obtener y cambiar este tipo de información mediante comandos?
  • ¿En términos de qué tipo de información dice la gente que un archivo es «más nuevo» que otro?
  • ¿Qué ¿El cambio de tipo de información no hará que el archivo sea diferente?

Por ejemplo, vi que alguien escribió:

De forma predeterminada, el programa rsync solo mira para ver si los archivos son diferentes en tamaño y marca de tiempo. No le importa qué archivo es más nuevo, si es diferente, se sobrescribe. Puede pasar el indicador «–update» a rsync, lo que hará que omita archivos en el destino si son más nuevos que el archivo en la fuente, pero solo siempre que sean del mismo tipo de archivo. Lo que esto significa es que si, por ejemplo, el archivo de origen es un archivo normal y el destino es un enlace simbólico, el archivo de destino se sobrescribirá, independientemente de la marca de tiempo.

En una nota al margen, ¿el tipo de archivo aquí significa solo archivo normal y simlink, no el tipo como pdf, jpg, htm, txt, etc.?

Comentarios

  • Consulte también askubuntu.com/questions/62492/…
  • Respuesta

    Hay 3 tipos de «marcas de tiempo»:

    • Acceso: el último hora en que se leyó el archivo
    • Modificar: la última vez que se modificó el archivo (se modificó el contenido)
    • Cambiar: 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 las coreutils.

    stat también le mostrará algunas 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 las opciones de montaje. Por ejemplo, si monta una partición con la opción noatime, no se escribirá información de acceso.

    Una utilidad para cambiar las marcas de tiempo sería touch. Existen algunos argumentos para decidir qué marca de tiempo cambiar (por ejemplo, -a para tiempo de acceso, -m para tiempo de modificación) y para influir en el análisis de una nueva marca de tiempo dada. Consulte man touch para obtener más detalles.

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

    Comentarios

    • ¡Gracias! Para el comando rsync, en » no ‘ t le importa qué archivo es más nuevo «, en términos de qué tipo de marca de tiempo significa » más reciente «. Además, en una nota al margen, ¿el tipo de archivo que le interesa a rsync significa solo el archivo normal y el enlace sim, no el tipo como pdf, jpg, htm, txt, etc.?
    • Por lo general, se hace referencia a la hora de un archivo es la marca de tiempo » modificada «. Por ejemplo, lo que ve en ls -l. Y el tipo de archivo se refiere a archivo frente a enlace simbólico (u otros tipos de archivos como directorios o dispositivos). No cuál es el tipo de datos en el archivo (texto frente a jpeg, etc.).
    • @Tim En ese contexto, ‘ s la marca de tiempo modificada; rsync está diciendo que cuando ‘ s decide si debe hacer una copia de seguridad de un archivo, no ‘ t verifica si el archivo fuente se ha modificado más recientemente que la copia de seguridad existente (que es común con los programas de copia de seguridad); simplemente comprueba si los archivos tienen diferentes tamaños o diferentes tiempos de modificación y realiza copias de seguridad si es así
    • ¿Y cómo sé cuándo se creó el archivo primero? ¿Esta información se mantiene en algún lugar o se pierde en las actualizaciones? por así decirlo, ¿cuánto tiempo ha existido el archivo …?
    • La página de manual de stat (2) describe con más detalle cuándo esas marcas de tiempo han cambiado.

    Respuesta

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

    Soporte del sistema de archivos

    Algunos sistemas de archivos admiten una entrada adicional en el inodo con respecto al tiempo de creación (o el tiempo de nacimiento). Sé que ext4 admite esta función y también JFS y BTRFS .

    Sin embargo, la mayoría de las herramientas y 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 stat más nueva tiene un campo de nacimiento, aunque la salida parece incorrecta. Y a través de debugfs podemos obtener la información (crtime como estoy en el sistema de archivos ext4).

    soporte statx

    Ahora hay desde Kernel 4.11 una nueva llamada al sistema statx , además de un mejor soporte de Y2038 o red sistemas de archivos, también trae algunas características adicionales como el acceso btime o 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 este nuevo syscall en versiones posteriores del 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 Noticias de Phoronix sobre la compatibilidad con glibc statx ). Por lo tanto, podemos esperar soporte para esta función en el espacio de usuario muy pronto.

    Comentarios

    • ¿Sabe si btime permanece intacto cuando los archivos de Windows (Creación time) se mueven a ext4 y viceversa, como mtime?
    • @paradroid lo siento, no sé la respuesta. Si se refiere a Linux al copiar un archivo de NTFS a ext4, sería necesario buscar en el controlador NTFS si admite el tiempo de creación. Si te refieres a Windows, sería necesario buscar en el controlador ext4 para Windows.

    Deja una respuesta

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