GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿cómo obtener la fecha de creación de un archivo en un volumen lógico Ntfs?

Creé un volumen lógico NTFS en mi sistema Linux para el almacenamiento de archivos de Windows porque quiero conservar la fecha de creación de mis archivos (probablemente los comprimiría en un archivo y luego los descomprimiría, aunque no tengo idea de si eso funcionará). ¿NTFS-3G guarda la fecha de creación de archivos en Linux? Si es así, ¿cómo accedo?

Al leer este hilo, el OP vincula la documentación sobre NTFS que proporciona un script de shell para encontrar la fecha de creación. Lo modifiqué en un intento de obtener los segundos del valor hexadecimal, pero creo que estoy haciendo algo mal:

#!/bin/sh
CRTIME=`getfattr -h -e hex -n system.ntfs_times $1 | 
    grep '=' | sed -e 's/^.*=(0x................).*$/1/'`
SECONDS=$(($CRTIME / 10000000))
echo `date --date=$SECONDS`

Respuesta aceptada:

Desde https://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/#filetimes,

Un archivo NTFS está calificado por un conjunto de cuatro marcas de tiempo "que representan el número de intervalos de 100 nanosegundos desde el 1 de enero de 1601 (UTC)", aunque el UTC no se ha definido para años anteriores a 1961 debido a variaciones desconocidas de la rotación de la tierra.

Encontrará aún más información allí, que incluye:

Las versiones más nuevas de ntfs-3g exponen un ntfs.ntfs_crtime y ntfs.ntfs_crtime_be atributo.

Entonces:

getfattr --only-values -n system.ntfs_crtime_be /some/file |
  perl -MPOSIX -0777 -ne '$t = unpack("Q>");
  print ctime $t/10000000-11644473600'
ntfsinfo -F /file/in/ntfs /dev/fs-device

Con ntfs-3g más antiguo, esto debería funcionar:

getfattr --only-values -n system.ntfs_times /some/file |
  perl -MPOSIX -0777 -ne 'print ctime unpack(Q)/10000000-11644473600'

O con herramientas GNU y precisión de subsegundos:

date '+%F %T.%N' -d "@$({ echo 7k
  getfattr --only-values -n system.ntfs_times /some/file |
    od -A n -N 8 -vt u8; echo '10000000/ 11644473600-p'; } |dc)"

Linux
  1. Cómo crear un sistema de archivos en una partición o volumen lógico de Linux

  2. Cómo cambiar la identidad de un sistema Linux

  3. Linux:¿Cómo obtener todos los registros de inicio de sesión del sistema?

  4. Linux:¿con qué frecuencia se actualiza el sistema de archivos Proc en Linux?

  5. Linux:¿cómo hacer que Sar se muestre para el día anterior?

Cómo formatear particiones de disco en Linux

Introducción al sistema de archivos de Linux

Cómo obtener el tamaño de un directorio en Linux

Cómo obtener el nombre de archivo de la ruta completa en Linux

Cómo montar un disco NTFS en Linux

Cómo usar el comando fd en el sistema Linux