Итак, я ищу подход командной строки для получения короткого (ish) текстового дампа относительно низкоуровневых метаданных для файла, примерно так же, как stat
в системах * nix.
Другими словами, информация, которая легко доступна через файловые API-интерфейсы Win32 или NT без фактического чтения содержимого файла и, безусловно, без необходимости заходить где-либо рядом с оболочкой (как это видно в диалоговых окнах « Проводник» и «Сохранить / Открыть» и во все, что использует shell32.dll
).
В NTFS эта информация, как правило , хранится в записи MFT файла, хотя я слышал, что от того, какие именно атрибуты заканчиваются в собственном MFT, во многом зависит, будет зависеть от того, какие из них являются необязательными, повторяемыми и / или переменный размер, некоторые могут быть, хотя также возможно использовать более одного слота в MFT. (Фактически, даже возможно сохранить полное содержимое файла / каталога в MFT, если другие атрибуты не занимают слишком много места!) Так что, очевидно, "появляется в MFT" нельзя использовать для определения того, что я ищу.
Кроме того, я не ищу инструменты, которые анализируют саму NTFS или работают только с файловыми системами NTFS: я упоминаю только NTFS, потому что, ну, а какая еще локальная ФС будет поддерживать более специфичные для NT вещи?
Для конкретности, вот stat
на поле Debian, которое я использую в качестве маршрутизатора:
hydrogen% stat .
File: ‘.’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fe00h/65024d Inode: 507974 Links: 4
Access: (0755/drwxr-xr-x) Uid: ( 1000/ naesten) Gid: ( 1000/ naesten)
Access: 2016-08-31 14:12:47.650440935 -0400
Modify: 2016-09-20 17:26:15.935591584 -0400
Change: 2016-09-20 17:26:15.935591584 -0400
Birth: -
hydrogen%
А вот что из Git для Windows:
Sam@Sam-laptop MINGW64 ~
$ git --version
git version 2.8.2.windows.1
Sam@Sam-laptop MINGW64 ~
$ stat .
File: '.'
Size: 0 Blocks: 32 IO Block: 65536 directory
Device: 147ac391h/343589777d Inode: 1970324836977201 Links: 1
Access: (0755/drwxr-xr-x) Uid: (197608/ Sam) Gid: (197121/ UNKNOWN)
Access: 2016-09-18 18:32:28.072538600 -0400
Modify: 2016-09-18 18:32:28.072538600 -0400
Change: 2016-09-18 18:32:28.072538600 -0400
Birth: 2014-08-21 18:52:08.217444400 -0400
Sam@Sam-laptop MINGW64 ~
$
В этот момент я собирался сказать, что поле отметки времени "рождения" - это Windowsism, но очевидно, что это не совсем так, потому что в статистике Debian это поле отображается, только оно пустое, потому что файловая система фактически не имеет этого поля. (Который, по крайней мере, гораздо понятнее , чем "Access" метка время:. Ни одна система не обновляет те , в традиционной манере strictatime
Также обратите внимание, как порт Windows отображает выданные разрешения на доступ к файлам, неправдоподобно большой "номер inode", и что я могу только предположить, это также составленные номера UID/GID (из-за того, как NT использует иерархические идентификаторы переменной длины) вместо номеров фиксированного размера для идентификации пользователей и групп, и не разрешает владение как пользователем, так и группой одновременно, то есть в NT файл принадлежит одной группе пользователя ИЛИ, а кто-то еще просто получает свои права из ACL).
Предоставляет ли MS инструмент такого рода, предположительно тот, который показывает более актуальную информацию и меньше информации о сказочных странах?
Мой оригинальный текст следует:
Да, я знаю, что есть порты stat
, но (а) я обеспокоен тем, что информация может провалиться, если:
- Это обычно не появляется в выводе
stat
Unix - Это отсутствует в каком-либо коде исходной
stat
(если есть) - Портер (ы) либо
- Не замечайте, что Windows предоставляет информацию
- Создаем слой POSIX, который не проходит через него
- Не уверены, как лучше представить информацию (или что это даже уместно) в контексте
stat
- Не имейте неограниченное количество времени на руках
и (б) мне было интересно, если Microsoft предоставила какой-либо аналогичный инструмент (ы).
Но на самом деле любой способ командной строки, позволяющий получить вид stat
может представлять интерес (независимо от того, включает ли он программу, называемую stat
), вместе с описанием более или менее специфичной для NTFS информации, которую он предоставляет.
PS Я нахожусь на Windows 7, но не позволяйте этому упоминать о вещах, впервые отправленных для / в более поздних версиях Windows.