Os tipos MIME são apenas uma maneira de nomear tipos. Eles não têm nada a ver com o tipo de arquivo determinado.
Existem duas maneiras de determinar o tipo de um arquivo: a) Observe sua extensão e espere que ela seja precisa ou b) observe seu conteúdo e, em seguida, especifique com base nisso. Se um arquivo não tiver extensão, b é a única opção.
Muitos formatos de arquivo (binários) têm um cabeçalho específico que você pode examinar para determinar seu tipo. Isso torna a opção b bastante confiável para esses tipos.
Formatos de arquivos de texto simples podem ser determinados por sua estrutura (se um arquivo contiver muitas tags html, provavelmente é um arquivo html).
Em sistemas unix e linux você pode usar o utilitário de linha de comando file
para descobrir o tipo de arquivo baseado em seu conteúdo.
O gerenciador de arquivos geralmente usa alguma combinação das opções aeb (por exemplo, observe a extensão do arquivo primeiro, se não for conhecida (ou o arquivo não tiver uma extensão), examine o conteúdo).
O tipo de um arquivo não é armazenado como metadados em sistemas de arquivos linux comuns.