Solo sé eso ls -t
y ls -f
doy diferentes clasificaciones 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 dicen las personas que un archivo es "más nuevo" que el otro?
- ¿Qué tipo de cambio de información no hará que el archivo sea diferente?
Por ejemplo, vi que alguien escribió:
Por defecto, el programa rsync solo busca 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 los archivos en el destino si son más nuevos que el archivo en la fuente, pero solo mientras sean del mismo tipo de archivo. Esto significa 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 un archivo normal y un enlace simbólico, no el tipo como pdf, jpg, htm, txt, etc.?
fuente
Respuestas:
Hay 3 tipos de "marcas de tiempo":
Para mostrar esta información, puede usar
stat
cuál es parte de los coreutils.stat
también le mostrará más información como el dispositivo, los inodos, los 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
noatime
opción, no se escribirá información de acceso.Sería una utilidad para cambiar las marcas de tiempo
touch
. Hay algunos argumentos para decidir qué marca de tiempo cambiar (por ejemplo, -a para el tiempo de acceso, -m para el tiempo de modificación) e influir en el análisis de una nueva marca de tiempo dada. Verman touch
para más detalles.touch
puede ser útil en combinación concp -u
( "copiar solo cuando el archivo SOURCE es más nuevo que el archivo de destino o cuando falta el archivo de destino" ) o para la creación de archivos de marcador vacíos.fuente
ls -l
. Y el tipo de archivo se refiere a archivo vs enlace simbólico (u otros tipos de archivos como directorios o dispositivos). No es cuál es el tipo de datos en el archivo (texto vs. JPEG, etc.).La respuesta de echox es válida pero quiero agregar información sobre el tiempo de creación del archivo.
Soporte de sistema de archivos
Algunos sistemas de archivos admiten una entrada adicional en el inodo con respecto al tiempo de creación (o 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:
Puede ver que la función estadística 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 ya que estoy en el sistema de archivos ext4).
soporte de statx
Ahora, desde Kernel 4.11, 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
acceso o el tiempo de nacimiento (tiempo de creación). El soporte para ext4 debe 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: por ejemplo, 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 característica en el espacio del usuario muy pronto.
fuente