GNU/Linux >> Tutoriales Linux >  >> Linux

Obtener la edad del archivo dado?

¿Cómo puedo obtener la antigüedad de un archivo determinado en, al menos, días?

Soy muy consciente de ls -lh y comandos similares. Quiero algo que funcione más o menos así:

getfage <FILE> # prints out '12d' (12 days)

Además, esto debe ser algo multiplataforma ya que también me gustaría usarlo en Mac OS X, pero el caso de uso principal está en mi caja de Linux.

NOTA

Dado que Linux no realiza un seguimiento del tiempo de creación, busco una solución doble:una para mtime (Linux):es decir, la última vez que se modificó dicho archivo –y uno para Mac OS X, que puede manejar mtime o tiempo de creación.

Respuesta aceptada:

Unix no realiza un seguimiento de una fecha de creación. La única información disponible suele ser la última vez que los archivos fueron:

  1. Accedido
  2. Modificado
  3. Cambiado
  • 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)

(De esta respuesta )

Puede obtener fechas relacionadas con un archivo en particular utilizando stat comando.

Ejemplo

$ stat ffmpeg 
  File: `ffmpeg'
  Size: 19579304    Blocks: 38248      IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 10356770    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-11-26 10:49:09.908261694 -0500
Modify: 2013-11-02 17:05:13.357573854 -0400
Change: 2013-11-02 17:05:13.357573854 -0400

OSX y HFS

Si está utilizando OSX, el sistema de archivos que se utiliza en ese Unix es HFS. Este es uno de los pocos (que yo sepa) que mantiene la fecha de creación dentro del sistema de archivos, junto con la hora de modificación, etc. similar a otros Unixes.

extracto

Un registro de archivo almacena una variedad de metadatos sobre el archivo, incluido su CNID, el tamaño del archivo, tres marcas de tiempo (cuándo se creó el archivo, cuándo se modificó por última vez, cuándo se realizó la última copia de seguridad), las extensiones del primer archivo de los datos y las bifurcaciones y punteros de recursos a los primeros datos del archivo y registros de extensión de recursos en el archivo de desbordamiento de extensión. El registro del archivo también almacena dos campos de 16 bytes que utiliza el Finder para almacenar atributos sobre el archivo, incluidos elementos como el código de creador, el código de tipo, la ventana en la que debe aparecer el archivo y su ubicación dentro de la ventana.

Marcas de tiempo

Las marcas de tiempo siempre se mantienen en el sistema de archivos, por lo que está limitado por cualquier seguimiento de tiempo que se ofrezca a través de ellos (EXT3, EXT4, XFS, etc.).

Relacionado:¿Por qué InnoDB almacena todas las bases de datos en un solo archivo?

Sistemas de archivos

Si alguna vez tiene curiosidad, eche un vistazo a este tema de Wikipedia titulado:Comparación de sistemas de archivos. Tiene la lista más extensa de sistemas de archivos que conozco junto con una buena tabla de las diversas funciones y el estado de si es compatible o no dentro de un sistema de archivos determinado.

Referencias

  • ¿Cómo encontrar la fecha de creación del archivo?
  • ¿Cómo hago un ls y luego ordeno los resultados por fecha de creación?
  • Lista de archivos creados los domingos
  • ¿Obtener archivo creado/hora de creación?
  • ¿Por qué el tiempo de Unix comienza en 1970-01-01?

Linux
  1. `^m` ¿Y cómo deshacerse de él?

  2. ¿Cuándo se creó el archivo?

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

  4. Obtenga el archivo más reciente en un directorio en Linux

  5. ¿Cómo obtener la ruta completa de un archivo?

Cómo obtener la fecha y hora actuales en Python

Comando para obtener el tiempo en milisegundos

Obtener la hora actual en horas y minutos

Cómo obtener la hora UTC

Obtener la última fecha de modificación del archivo en Linux

copia de seguridad en tiempo real si el archivo cambió?