GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuándo se creó el archivo?

Esta pregunta ya tiene respuestas aquí :¿Cómo encontrar la fecha de creación del archivo?

(7 respuestas)
Cerrado hace 7 años.

¿Cómo puedo ver cuándo se creó un archivo? He mirado en la página man

ls -lc es para la última modificación del estado del archivo

ls -lu para el tiempo de acceso

ls -l no se indica exactamente a qué hora, se cambió por última vez?

Probé estos, pero no me dan la hora en que se creó el archivo.

Respuesta aceptada:

En OS/X o FreeBSD, es la opción -U. Linux ahora también almacena la hora de nacimiento/creación en la mayoría de sus sistemas de archivos nativos, pero todavía no hay una API para recuperarla (edición de 2018 :desde el kernel 4.11, ahora hay un statx() llamada al sistema, y ​​desde glibc 2.28 un envoltorio libc para él y desde coreutils 8.31, GNU stat puede mostrarlo y (edición de 2021 ) desde 8.32 GNU ls puede mostrarlo con --time=birth ).

En los sistemas de archivos ext4, puede usar debugfs para obtenerlo:

$ sudo debugfs /dev/some/fs
stat /some/file
[...]
crtime: 0x53208d7a:9045625c -- Wed Mar 12 16:38:18 2014
[...]

(donde /some/file es la ruta dentro de ese sistema de archivos)

Para los sistemas de archivos NTFS, y suponiendo que utilice ntfs-3g para montarlo, consulte ¿Cómo obtengo la fecha de creación de un archivo en un volumen lógico NTFS?

Si tiene un sistema Linux lo suficientemente reciente, puede usar xfs_io ‘s statx subcomando para invocar el nuevo statx() llame al sistema y obtenga la hora de nacimiento:

$ TZ=UTC0 xfs_io -c 'statx -v' /some/file
[...]
stat.btime = Thu Feb  7 17:11:20 2019
[...]

(aquí usando la hora UTC con TZ=UTC0 ya que, de lo contrario, la fecha sería ambigua ya que no se emite el desplazamiento UTC). O con statx -r lo que te da la parte de nanosegundos y un tiempo analizable más fácilmente:

$ xfs_io -c 'statx -r' /some/file
[...]
stat.btime.tv_sec = 1549559480
stat.btime.tv_nsec = 964691587
[...]

Con GNU stat 8.31 o posterior en sistemas con glibc 2.28 o posterior y kernel 4.11 o posterior:

$ stat /some/file | grep Birth:
 Birth: 2018-05-24 16:27:28.415875403 +0100
$ stat -c '%.9W %w' /some/file
1527175648.415875403 2018-05-24 16:27:28.415875403 +0100

Con GNU ls 8.32 o posterior en sistemas con glibc 2.28 o posterior y kernel 4.11 o posterior:

$ ls -l --time=birth --full-time /some/file
-rw-r--r-- 1 stephane stephane 2333836 2018-05-24 16:27:28.415875403 +0100 /some/file

Tradicionalmente, Unix no almacenaba una hora de creación.

Tenga en cuenta que ese valor puede tener menos significado de lo que piensa.

El tiempo de modificación refleja la antigüedad de los datos en ese archivo, el tiempo de acceso cuando se accedió por última vez, el tiempo de cambio de inodo es muy útil para el software de copia de seguridad, por ejemplo, porque no sabe nada acerca de que ese archivo haya cambiado desde ese momento (excepto posiblemente su ruta completa para la cual puede ver el ctime de sus componentes de directorio).

Relacionado:¿problema con el archivo bundleconfig?

El tiempo de creación es cuando el inodo se genera (bueno, si hubiera un conteo de enlaces de 0 a 1, ese inodo podría haber sido asignado y eliminado en una vida anterior), no refleja la antigüedad de ningún dato asociado con ese archivo (los datos son escrito después de que se haya creado el archivo), no nos dice si un archivo por esa ruta comenzó a existir en ese momento (el archivo que estamos viendo puede haber sido creado con una ruta diferente y vinculado o movido allí más tarde).


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

  2. Historial de Bash:cómo ver una marca de tiempo (fecha/hora) cuando se ejecutó cada comando

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

  4. Exclusión de directorio al crear un archivo .tar.gz

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

Cómo mostrar cuándo se accedió por última vez a un archivo en Ubuntu

mkdir -p falla cuando existe un directorio

ubicación del archivo temporal cuando se usa tmpfile() en C

¿Cuándo se elimina un archivo creado con mkstemp()?

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

¿Cómo eliminar archivos .fuse_hidden*?