Как я получаю дату создания файла на логическом томе NTFS?

С DEST это предполагает именование имени файла и пути (и поэтому каталог) целевого файла. С DIRECTORY Вы просто перечисляете, каким каталогом целевой файл будет в при сохранении SOURCE имя.

9
02.09.2013, 00:01
1 ответ

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

Файл NTFS квалифицирован рядом четырех меток времени “представление количества интервалов с 100 наносекундами с 1 января 1601 (UTC)”, хотя UTC не был определен в течение многих лет до 1961 из-за неизвестных изменений наземного вращения.

Вы найдете еще больше информации там включая:

Более новые версии ntfs-3g выставляют a ntfs.ntfs_crtime и ntfs.ntfs_crtime_be атрибут.

Так:

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

С более старым ntfs-3g это должно работать:

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

Или с инструментами GNU и подвторой точностью:

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)"
6
27.01.2020, 20:07
  • 1
    , я на самом деле вычитал 11,644,473,600 после того, как я отправил этот вопрос, но потому что у меня были интервалы с 100 наносекундами неправильно, он приводил к недопустимому результату. Я протестирую это, когда я возвращусь к своему полю. –  NobleUplift 20.08.2013, 00:25
  • 2
    Это работало!Спасибо. Как делает unpack("Q>") работа? Я прочитал документ Perl, и я не полностью понимаю это. –  NobleUplift 20.08.2013, 05:34
  • 3
    @NobleUplift, распаковывает обратный порядок байтов (>) [Q]uad (целое число на 64 бита) –  Stéphane Chazelas 20.08.2013, 08:35

Теги

Похожие вопросы