Windows 中与 Linux 中的 Inode 类似的功能是什么?

Windows 中与 Linux 中的 Inode 类似的功能是什么?

是否有任何命令与 Linux 中的 inode 功能相同。任何信息都会有帮助。

答案1

inode 的概念用于基于 Unix 的文件系统。NTFS 可能在 MFT 内部使用某种类型的索引标识符,但 Windows 没有内置命令来显示它。我不知道您只是好奇还是想在 Windows 中创建硬链接之类的操作。我每天都管理 Linux 桌面和服务器,查看 inode 编号对我来说唯一有用的就是确认硬链接。

来源:http://commandwindows.com/fsutil.htm

http://answers.yahoo.com/question/index?qid=20090805195409AAJDwM3 - 存档于archive.org

答案2

在 NTFS 中,文件元数据存储在 MFT 记录中,它类似于 Windows 中的 inode。每条记录都有自己的唯一 ID,相当于 inode 编号。您可以使用以下命令检查fsutil file queryfileid

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

您还可以使用 API 通过其 ID 打开文件OpenFileById()

您可以获得更详细的信息(包括文件 ID),这可以被认为是Unix 中fsutil file layout的大致等效stat

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

虽然你可以将文件在文件分配表中的第一个位置视为其 ID(直到文件由于碎片整理而被移动),但在 FAT 文件系统上没有这样的东西

相关内容