¿Qué sistemas de archivos en Linux almacenan el tiempo de creación?

32

¿Hay algún sistema de archivos (conocido, confiable) en Linux que almacene el tiempo de creación de archivos y directorios en la tabla i-node?

Si los hay, ¿se reemplaza el tiempo "modificado" por el tiempo de creación de un i-nodo en una llamada estadística?

franziskus
fuente
1
Consulte también ¿Cómo hago un ls y luego ordeno los resultados por fecha de creación?
Gilles 'SO- deja de ser malvado'
Hay qué parece ser una manera de obtener el tiempo de creación de archivos en Linux si el archivo está en un sistema de archivos ext4. Ver: unix.stackexchange.com/a/131347/182996
kaartic

Respuestas:

16

El sistema de archivos ext4 almacena el tiempo de creación. stat -c %W myfilete lo puedo mostrar.

Keith
fuente
66
Gracias. En mi sistema stat -c %Wdevuelve 0 (tiempo de creación desconocido), pero esa es otra pregunta ...
franziskus
1
Pero tenga en cuenta que debido a la forma en que muchos programas manejan los archivos, ese valor de tiempo de creación puede no ser útil .
mattdm
15
@Legate: si un editor de texto funciona copiando el archivo en una ubicación temporal, editando la copia de trabajo temporal y luego moviendo la copia temporal sobre el original al guardar, ¿cuándo es el momento de la creación?
mattdm
1
¿Esto necesita ser habilitado de alguna manera? Traté de obtener el crtime para un archivo en un sistema de archivos ext4 y obtuve cero. Habiendo leído previamente esta publicación de blog , también intenté usar debugfsy statque reveló que no hay crtime. ¿Entonces me pregunto si necesita ser habilitado de alguna manera? (FWIW uso Arch Linux )
starfry
2
Hay qué parece ser una manera de obtener el tiempo de creación de archivos en Linux. Ver: unix.stackexchange.com/a/131347/182996
kaartic
30

Varios sistemas de archivos almacenan el tiempo de creación de archivos, aunque no hay un nombre estándar para este campo:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → crtime
  • btrfs → otime
  • jfs → di_otime
jlliagre
fuente
55
Para ser explícito, a partir de 2015-03, XFS no es compatible (consulte la página de xfs_dbmanual o en la Estructura del sistema de archivos XFS
Franklin Piat
4

Hasta donde sé ext4, los sistemas de archivos JFS y BTRFS admiten un campo adicional en el inodo de los archivos para almacenar el tiempo de creación, aunque los nombres pueden diferir.

Fuente: tiempos de creación de archivos LWN

Huygens
fuente
//, ¿Has podido verificar esto? AFAIK es algo débil, al menos para mi gusto.
Nathan Basanese
55
@NathanBasanese El AFAIK informaba a JFS y BTRFS. Para ext4, sí, lo admite. Verifique la debugfsestadística del comando. Ejemplo: necesita colocar el dispositivo donde está montado su sistema de archivos ext4 (por ejemplo, / dev / sda3) y necesita obtener un número de inodo de archivo dentro de ese sistema de archivos (use ls -i, digamos 42000 es el número), luego simplemente escriba: debugfs -R 'stat <42000>' /dev/sda3. Ejecute esto como root, o con suficientes privilegios. Busque el crtimecampo, ese es el. Para JFS y BTRFS, necesitaría encontrar el comando debugfs equivalente ...
Huygens
//, NIIICE. Intenté $ ls -i | grep dump.rdb 656376 dump.rdb y $ sudo debugfs -R 'stat <656376>' / dev / sda2, pero creo que todavía no tengo ext4 allí. Si lo intento en un ext4, lo diré.
Nathan Basanese
@NathanBasanese Puede hacer df -Tpara obtener el tipo de partición o simplemente escribir mount. Asegúrese de que el inodo del archivo pertenezca a la partición correcta. Los inodos son (por su naturaleza) específicos de una partición.
Huygens