Назад | Перейти на главную страницу

Какая функция в Windows похожа на Inode в Linux?

Существуют ли какие-либо команды, аналогичные индексному дескриптору функции в Linux. Любая информация будет полезна.

В файлах NTFS метаданные хранятся в записях MFT, которые являются аналогом inode в Windows. Каждая запись имеет свой уникальный идентификатор, который эквивалентен номеру inode. Вы можете проверить это с помощью fsutil file queryfileid

PS C:\>  fsutil file queryfileid .\Windows\
File ID is 0x0000000000000000003f000000023994

Вы также можете открыть файл с его идентификатором, используя API OpenFileById()

Вы можете получить более подробную информацию (включая идентификатор файла) с fsutil file layout что можно считать грубым эквивалентом stat в Unix

PS C:\>  fsutil file layout .\Windows\

********* File 0x003f000000023994 *********
File reference number   : 0x003f000000023994
File attributes         : 0x00000010: Directory
File entry flags        : 0x00000000
Link (ParentID: Name)   : 0x0005000000000005: HLINK Name   : \Windows
Creation Time           : 07-07-2018 7:13:52
Last Access Time        : 22-07-2018 3:50:13
Last Write Time         : 13-07-2018 14:43:09
Change Time             : 13-07-2018 14:43:09
LastUsn                 : 14,010,547,632
OwnerId                 : 0
SecurityId              : 269
StorageReserveId        : 0
Stream                  : 0x010  ::$STANDARD_INFORMATION
    Attributes          : 0x00000000: *NONE*
    Flags               : 0x0000000c: Resident | No clusters allocated
    Size                : 72
    Allocated Size      : 72
Stream                  : 0x030  ::$FILE_NAME
    Attributes          : 0x00000000: *NONE*
    Flags               : 0x0000000c: Resident | No clusters allocated
    Size                : 80
    Allocated Size      : 80
Stream                  : 0x090  :$I30:$INDEX_ROOT
    Attributes          : 0x00000000: *NONE*
    Flags               : 0x0000000c: Resident | No clusters allocated
    Size                : 400
    Allocated Size      : 400
Stream                  : 0x0a0  :$I30:$INDEX_ALLOCATION
    Attributes          : 0x00000000: *NONE*
    Flags               : 0x00000000: *NONE*
    Size                : 16,384
    Allocated Size      : 16,384
    Extents             : 4 Extents
                        : 1: VCN: 0 Clusters: 1 LCN: 2,017,244
                        : 2: VCN: 1 Clusters: 1 LCN: 2,280,708
                        : 3: VCN: 2 Clusters: 1 LCN: 2,285,170
                        : 4: VCN: 3 Clusters: 1 LCN: 16,203,332
Stream                  : 0x0b0  :$I30:$BITMAP
    Attributes          : 0x00000000: *NONE*
    Flags               : 0x0000000c: Resident | No clusters allocated
    Size                : 8
    Allocated Size      : 8
Stream                  : 0x100  :$TXF_DATA:$LOGGED_UTILITY_STREAM
    Attributes          : 0x00000000: *NONE*
    Flags               : 0x0000000c: Resident | No clusters allocated
    Size                : 56
    Allocated Size      : 56

В файловой системе FAT такого нет, хотя вы можете считать первую позицию файла в таблице распределения файлов его идентификатором (до тех пор, пока файл не будет перемещен из-за дефрагментации).

Концепция inode используется в файловой системе на основе Unix. NTFS может иметь некоторый тип идентификатора индекса, который используется внутри MFT, но Windows не имеет встроенной команды, чтобы показать это. Я не знаю, вам просто любопытно или вы пытаетесь выполнить что-то вроде создания жесткой ссылки в Windows. Я администрирую рабочие столы и серверы Linux каждый день, и единственное, что мне полезно для просмотра номера inode, - это подтверждение жесткой ссылки.

Источник: http://commandwindows.com/fsutil.htm

http://answers.yahoo.com/question/index?qid=20090805195409AAJDwM3