Quais são as extensões de arquivos executáveis do Linux?

Adriano Frare
Por Adriano Frare

O Linux trabalha com várias extensões de arquivos, os quais podem ser configurados para serem executados ou abertos por determinados aplicativos. O MIME type define no Linux a correlação entre as extensões de arquivos e o aplicativo correspondente.

 

Visão Geral – Extensões de Arquivos no Linux

O tipo MIME é um tópico importante em tecnologia da web.

Neste tutorial, vamos discutir o que é um tipo MIME e aprender como obter o tipo MIME de um arquivo usando os utilitários de linha de comando do Linux.

Tipos MIME

A abreviatura MIME significa Multi-purpose Internet Mail Extensions. Os tipos MIME constituem uma forma padrão de classificar os tipos de arquivo na Internet.

Primeiro, vamos dar uma olhada em um tipo MIME comum para um exemplo:

text/html

Um tipo MIME consiste em duas partes: um tipo e um subtipo.

Neste exemplo, o tipo é “ texto “ e o subtipo é “ html “.

Atualmente, existem dez tipos registrados: aplicativo , áudio , exemplo , fonte , imagem , mensagem , modelo , multiparte , texto e vídeo .

Vamos ver alguns outros tipos MIME comuns:

  • multipart/form-data
  • text/xml
  • text/csv
  • text/plain
  • application/xml
  • application/zip
  • application/pdf

Em tipos MIME, o tipo e o subtipo não fazem distinção entre maiúsculas e minúsculas.

Um subtipo geralmente consiste em um formato de mídia, como “ xml ” ou “ pdf ” no exemplo acima. No entanto, ele também pode conter outro conteúdo, como um prefixo ou sufixo de árvore, dependendo das diferentes regras nas árvores de registro.

Um formato de tipo MIME completo se parece com:

type “/” [tree “.”] subtype [“+” suffix]

Vamos ver outro exemplo de tipo MIME :

application/vnd.api+json

Este é um tipo MIME específico da API e se refere à API JSON .

Neste exemplo, temos “ aplicativo ” como o tipo e “ api ” como o subtipo. O “ vnd. ”É o prefixo do fornecedor, enquanto“ + json ”é o sufixo, indicando que pode ser analisado como JSON.

Determine o tipo MIME de um arquivo

O tipo MIME fornece uma maneira padrão de nomear um tipo. No entanto, o tipo MIME de um arquivo não é armazenado no sistema de arquivos Linux.

Existem duas maneiras de determinar o tipo MIME de um arquivo:

  • Olhando para a extensão do arquivo
  • Olhando para o conteúdo do arquivo

A seguir, vamos dar uma olhada em duas maneiras de determinar o tipo MIME de um arquivo.

Por extensões de arquivo no Linux

Um tipo MIME às vezes pode ser determinado pela extensão, mas nem sempre. Se um arquivo não tiver uma extensão ou tiver uma extensão incorreta, não podemos determinar o tipo MIME pela extensão do arquivo. Por exemplo, podemos renomear um arquivo de imagem JPG para que tenha uma extensão de arquivo ZIP.

Por conteúdo de arquivo

Outra maneira de obter o tipo MIME de um arquivo é lendo seu conteúdo.

Podemos determinar o tipo MIME de acordo com as características específicas do conteúdo do arquivo. Por exemplo, um JPG começa com a assinatura hexadecimal FF D8 e termina com FF D9.

Isso é mais lento do que a abordagem de extensão de arquivo devido aos esforços extras de E / S. No entanto, pode ser mais confiável.

Combinando as duas maneiras

No mundo real, os programas geralmente usam uma combinação das duas maneiras de determinar o tipo MIME de um arquivo. Por exemplo, o shared-mime-info de freedesktop.org mantém um banco de dados do tipo MIME e permite que outros programas, como GNOME , KDE e Xfce , usem esse banco de dados para encontrar os tipos MIME correspondentes por extensões de arquivo ou conteúdo.

Vamos ver um exemplo do tipo MIME “ image / png “ definido em shared-mime-info:

<?xml version=”1.0″ encoding=”UTF-8″?>

<mime-info xmlns=”http://www.freedesktop.org/standards/shared-mime-info”>

<mime-type type=”image/png”>

<comment xml:lang=”en”>PNG image</comment>

<comment xml:lang=”af”>png beeld</comment>

<magic priority=”50″>

<match type=”string” value=”x89PNG” offset=”0″/>

</magic>

<glob pattern=”*.png”/>

</mime-type>

</mime-info>

No exemplo “ image / png ” acima, a tag <magic> define a regra para reconhecer arquivos PNG por seu conteúdo. No entanto, a tag <glob> define as extensões de arquivo para determinar o tipo MIME.

Ferramentas de linha de comando do Linux

Agora, vamos ver como podemos obter o tipo MIME de um arquivo usando as ferramentas de linha de comando do Linux. Nesta seção, veremos dois utilitários: o comando file e o comando xdg-mime .

O Comando xdg-mime

O  comando xdg-mime é membro do pacote xdg-utils  de freedesktop.org. Este pacote está pré-instalado em quase todas as distros Linux com um ambiente de desktop.

O  comando xdg-mime usa o banco de dados shared-mime-info para determinar os tipos MIME. Ele tentará primeiro reconhecer o tipo MIME pela extensão do arquivo. Se falhar, ele examinará o conteúdo do arquivo.

A sintaxe de uso do comando xdg-mime para obter o tipo MIME de um arquivo é:

xdg-mime query filetype INPUT_FILE

Vamos preparar um arquivo de imagem JPG ( onePicture.jpg ) e ver se o comando xdg-mime pode obter o tipo MIME:

$ xdg-mime query filetype onePicture.jpg

image/jpeg

A seguir, vamos brincar um pouco com o comando xdg-mime . Vamos mudar a extensão do arquivo e ver qual resultado o comando xdg-mime nos dará:

$ mv onePicture.jpg onePicture.zip

$ xdg-mime query filetype onePicture.zip

application/zip

O  comando xdg-mime nos diz um tipo MIME errado. Isso ocorre porque o comando xdg-mime primeiro tenta localizar um tipo MIME por extensão de arquivo no banco de dados.

Agora, vamos remover totalmente a extensão do arquivo e ver o que acontece:

$ mv onePicture.zip onePicture

$ xdg-mime query filetype onePicture

image/jpeg

Obtemos o resultado correto novamente. Isso ocorre porque se o comando xdg-mime não puder encontrar um tipo MIME por extensão de arquivo, ele tentará encontrar o tipo MIME pelo conteúdo do arquivo.

O comando do arquivo

A maioria dos sistemas operacionais gratuitos, como FreeBSD e Linux, são fornecidos com o comando file por padrão, o que permite configurar definir extensões de arquivos Usaremos o comando com a opção –mime-type para obter o tipo MIME de um arquivo.

Vamos ver se o comando file pode obter o tipo MIME do mesmo arquivo JPG:

$ file –mime-type onePicture.jpg

onePicture.jpg: image/jpeg

Agora, vamos fazer a mesma mudança na extensão do arquivo e ver se o arquivo ainda pode relatar o resultado correto:

$ mv onePicture.jpg onePicture.zip

$ file –mime-type onePicture.zip

onePicture.zip: image/jpeg

Importante!! Mesmo se tentarmos enganar o comando de arquivo alterando a extensão do arquivo, ele ainda poderá informar o tipo MIME correto. Isso ocorre porque o comando de arquivo não depende de extensões de arquivo para determinar os tipos de arquivo MIME. Em vez disso, ele examina o conteúdo real do arquivo. Portanto, é mais confiável neste caso.

Por fim, excluímos a extensão do arquivo e esperamos que o comando do  arquivo ainda funcione corretamente:

$ mv onePicture.zip onePicture

$ file –mime-type onePicture

onePicture: image/jpeg

Como esperávamos, ele retorna o resultado certo.

Conclusão

Neste artigo, falamos sobre como configurar as várias extensões de arquivos no Linux, através do tipo MIME e como um tipo MIME é nomeado. Em seguida, discutimos as abordagens comuns para determinar o tipo MIME de um arquivo no Linux.

Segue abaixo mais dicas de como utilizar o Linux de forma simples e rápida.

Dicas de como usar o comando RSync

.5 dicas para aumentar sua segurança online

Sete dicas de tecnologias para cortar custos e aumentar ganhos de empresas no pós-pandemia

Share This Article
Follow:
Escritor do livro Aplicações Avançadas em LINUX com mais de 20 anos trabalhando com LINUX e UNIX.