Os tipos MIME não são realmente armazenados no sistema de arquivos. Eles são apenas uma forma conveniente de saber como processar um arquivo. Para obter o tipo MIME, você precisa executar um programa.
Alguns programas detectam o tipo mime de um arquivo observando apenas a extensão do arquivo, enquanto outros verificam o arquivo por um número mágico ou um padrão mágico especial (essencialmente uma regex ).
Como exemplo, execute touch test.html
, que cria um arquivo vazio.
Em seguida, execute xdg-mime query filetype test.html
ou mimetype test.html
. Ambos retornarão o tipo text/html
.
No entanto, se você executar file --mime-type -b test.html
, ele retornará inode/x-empty
.
Portanto, se você quiser que todos os programas atuem da mesma maneira em seu arquivo, o arquivo deve ter o formato adequado (dados) junto com a extensão correta.
% bl0ck_qu0te%Como funciona o comando de arquivo?
Na página de manual file(1)
:
Como o arquivo sabe quais padrões mágicos usar?
Novamente, na página do manual file(1)
:
Se eu executar strace file image |& grep magic
, poderemos ver que o comando file
procura esses arquivos:
Existem outros arquivos como /etc/mime.types
que outros programas usam. Este arquivo atribui uma extensão a um tipo MIME. Por exemplo, grep -i text/html /etc/mime.types
produz:
text/html html htm shtml