Windows: Como localizar o nome do arquivo para um identificador de arquivo?

2

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

Eu quero ver os nomes dos arquivos que foram processados.

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

Sincedb files are text files with four columns:

The inode number (or equivalent). The major device number of the file system (or equivalent). The minor device number of the file system (or equivalent). The current byte offset within the file.

No linux eu posso converter o inode para filename 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 arquivo / arquivo do Windows em nomes de arquivos e diretórios?

    
por Kshitiz Sharma 22.03.2017 / 12:51

1 resposta

2

Os descritores de arquivo e as alças de arquivo 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 não são descritores de arquivos. Eles fazem parte da estrutura do sistema de arquivos em disco em sistemas de arquivos comuns, como Ext2 e Ext3. Como eles são tão importantes para o Linux, o Linux simulará números de inodes ao acessar um sistema de arquivos FAT da Microsoft.

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 acho Update Sequence Number (USN) mas não acredite na minha palavra.

    
por 23.03.2017 / 17:12