GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come ottenere la data di creazione di un file su un volume logico Ntfs?

Ho creato un volume logico NTFS sul mio sistema Linux per l'archiviazione di file Windows perché voglio conservare la data di creazione dei miei file (probabilmente li comprimerei in un archivio e poi li decomprimerei, anche se non ho idea se funzionerebbe). NTFS-3G salva la data di creazione dei file su Linux? Se sì, come faccio ad accedervi?

Leggendo questo thread, l'OP collega la documentazione su NTFS che fornisce uno script di shell per trovare la data di creazione. L'ho modificato nel tentativo di ottenere i secondi dal valore esadecimale, ma credo di sbagliare qualcosa:

#!/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`

Risposta accettata:

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

Un file NTFS è qualificato da una serie di quattro timestamp "che rappresentano il numero di intervalli di 100 nanosecondi dal 1 gennaio 1601 (UTC)", sebbene UTC non sia stato definito per anni prima del 1961 a causa di variazioni sconosciute della rotazione terrestre.

Troverai ancora più informazioni tra cui:

Le versioni più recenti di ntfs-3g espongono un ntfs.ntfs_crtime e ntfs.ntfs_crtime_be attributo.

Quindi:

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 il vecchio ntfs-3g, questo dovrebbe funzionare:

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

O con strumenti GNU e precisione inferiore al secondo:

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. Linux – Come trovare la data di creazione del file?

  2. Linux:con quale frequenza viene aggiornato il file system Proc su Linux?

  3. Linux:come ottenere Sar da mostrare per il giorno precedente?

  4. Come reindirizzare l'output di system() su un file?

  5. Come ottenere la data/ora di creazione del file in Bash/Debian?

Come formattare le partizioni del disco in Linux

Introduzione al file system Linux

Come ottenere la dimensione di una directory in Linux

Come ottenere il nome del file dal percorso completo in Linux

Come montare il disco NTFS su Linux

Come utilizzare il comando fd sul sistema Linux