Windows: como encontrar o nome do arquivo para um identificador de arquivo?

Windows: como encontrar o nome do arquivo para um identificador de arquivo?

Estou trabalhando com um software chamado logstash que processa arquivos de log e armazena o progresso em um arquivo como este:

82484791-1419-65536 0 0 26507948
82484791-1420-65536 0 0 26071030
82484791-1421-65536 0 0 3065829
82484791-1422-65536 0 0 3973980
82484791-1425-65536 0 0 4301931

Quero ver os nomes dos arquivos que foram processados.

De acordo com a documentação, isso deve ser interpretado como:

Os arquivos Sincedb são arquivos de texto com quatro colunas:

O número do inode (ou equivalente). O número principal do dispositivo do sistema de arquivos (ou equivalente). O número secundário do dispositivo do sistema de arquivos (ou equivalente). O deslocamento de bytes atual no arquivo.

No Linux posso converter o inode em nome de arquivo usando:

find /path/to/mountpoint -inum <inode number>

ou

debugfs -R 'ncheck <inode number>' /dev/sda2 2>/dev/null

Qual é o equivalente do Windows para fazer isso?Como faço para converter os descritores de arquivos/arquivos do Windows em nomes de arquivos e diretórios?

Responder1

Os descritores e identificadores de arquivos são efêmeros: eles existem apenas enquanto um programa está em execução e podem ser reutilizados. Encontrá-los em um arquivo de log é bastante inútil.

Os inodes do Linux sãonãodescritores de arquivo. Eles fazem parte da estrutura do sistema de arquivos em disco em sistemas de arquivos comuns, como Ext2 e Ext3. Por serem tão importantes para o Linux, o Linux simulará números de inodes ao acessar um sistema de arquivos Microsoft FAT.

Isso nos leva ao próximo problema: o Windows não usa inodes, porque os sistemas de arquivos típicos da Microsoft não usam inodes. Não está claro qual é o valor "ou equivalente". Se eu tivesse que adivinhar, eu adivinhariaAtualizar número de sequência (USN)mas não acredite apenas na minha palavra.

informação relacionada