GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak zjistit datum vytvoření souboru na logickém svazku Ntfs?

Vytvořil jsem logický svazek NTFS na svém systému Linux pro ukládání souborů Windows, protože chci zachovat datum vytvoření mých souborů (pravděpodobně bych je zabalil do archivu a pak je rozbalil, i když netuším, zda by to fungovalo). Ukládá NTFS-3G datum vytvoření souborů v systému Linux? Pokud ano, jak se k němu dostanu?

Při čtení tohoto vlákna OP odkazuje na dokumentaci NTFS, která poskytuje skript shellu pro zjištění data vytvoření. Upravil jsem to ve snaze získat sekundy z hexadecimální hodnoty, ale věřím, že dělám něco špatně:

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

Přijatá odpověď:

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

Soubor NTFS je kvalifikován sadou čtyř časových razítek „představujících počet 100nanosekundových intervalů od 1. ledna 1601 (UTC)“, ačkoli UTC nebylo definováno léta před rokem 1961 kvůli neznámým variacím rotace Země.

Najdete tam ještě více informací, včetně:

Novější verze ntfs-3g odhalují ntfs.ntfs_crtime a ntfs.ntfs_crtime_be atribut.

Takže:

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

Se staršími ntfs-3g by to mělo fungovat:

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

Nebo s nástroji GNU a přesností na méně než sekundy:

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. Jak vytvořit souborový systém na linuxovém oddílu nebo logickém svazku

  2. Linux – Jak zjistit datum vytvoření souboru?

  3. Linux:Jak získat všechny přihlašovací protokoly ze systému?

  1. Linux – jak přimět Sar, aby se ukazovala za předchozí den?

  2. Jak získat cestu k aktuálnímu souboru (pwd) v Linuxu z C?

  3. Získejte datum poslední změny souboru v Linuxu

  1. Jak změnit identitu systému Linux

  2. Jak zkontrolovat datum instalace vašeho linuxového operačního systému?

  3. Jak získat fyzickou velikost souboru v Linuxu?