O Unix decide sobre o tipo de arquivo procurando por arquivos mágicos em deslocamentos fixos. Como isso pode ser feito de forma confiável?

O Unix decide sobre o tipo de arquivo procurando por arquivos mágicos em deslocamentos fixos. Como isso pode ser feito de forma confiável?

Dehttps://linux.die.net/man/1/file:

Os testes mágicos são usados ​​para verificar arquivos com dados em formatos fixos específicos. O exemplo canônico disso é um a.outarquivo binário executável (programa compilado), cujo formato é definido #include <a.out.h> e possivelmente #include <exec.h>no diretório de inclusão padrão. Esses arquivos têm um 'número mágico' armazenado em um local específico próximo ao início do arquivo que informa ao sistema operacional UNIX que o arquivo é um executável binário e qual dos vários tipos dele. O conceito de “mágica” foi aplicado por extensão aos arquivos de dados. Qualquer arquivo com algum identificador invariável em um pequeno deslocamento fixo no arquivo geralmente pode ser descrito desta forma. As informações que identificam esses arquivos são lidas do arquivo mágico compilado /usr/share/misc/magic.mgcou dos arquivos do diretório /usr/share/misc/magiccaso o arquivo compilado não exista. Além disso, se $HOME/.magic.mgcexistir $HOME/.magic, será usado preferencialmente aos arquivos mágicos do sistema. Se /etc/magicexistir, será usado junto com outros arquivos mágicos.

Justo. Portanto, se, por coincidência, um arquivo de texto contiver um 'número mágico' específico para, por exemplo, um mp4vídeo em um deslocamento apropriado... Clicar duas vezes em tal arquivo de texto resultará na inicialização de um reprodutor de vídeo em vez de um editor de texto ?

Responder1

Depende - sua área de trabalho pode indexar arquivos observando seu tipo MIME usando file. Ou pode simplesmente olhar para o sufixo do arquivo e acreditar que (veja por exemploUma referência rápida para extensões de arquivo e tipos MIME ).

Em qualquer caso, o reprodutor de vídeo fará o seuterverificações, para garantir que o arquivo seja carregado corretamente, e apenas uma implementação ingênua examinará apenas os primeiros bytes.

O fileprograma utiliza uma mistura de informações (incluindo pesos para as medidas que toma). Um arquivo mpeg4 contém muitas informações que filepodem não ser úteis (ou necessárias). Veja por exemploFormato e exemplo de recuperação de áudio MPEG-4 Parte 14 (M4A, M4B, M4P), eFormato de assinatura MP4: exemplo de documentação e recuperação

informação relacionada