Como atribuir (definir) um tipo MIME a um arquivo?

14

Existe algum comando que possa definir o tipo MIME de um arquivo? por exemplo:

mime --set --MIME="image/pjpeg" filename.jpg  
Estudante de PHP
fonte
É bastante antigo, mas talvez ainda seja útil: rlog.rgtti.com/2010/11/22/… (desculpe, não há tempo para desenterrá-lo agora ...). Por favor, adicione uma resposta se funcionar!
Rmano 17/02
possível duplicata de Como altero o tipo MIME de um arquivo?
21415 Sylvain Pineau
2
@SylvainPineau A pergunta que você vinculou é semelhante, mas não duplicada, e não há resposta para minha pergunta nesse link, nem resposta para a pergunta do link em si! Com base na resposta aceita nesse link, o problema do asker não era do tipo MIME, mas era o próprio conteúdo do arquivo.
PHP Learner
2
@PHPLearner Olhe help.ubuntu.com/community/AddingMimeTypes , especialmente o uso de arquivos XML eupdate-mime-database
Sylvain Pineau
2
@PHPLearner: Eu removi meu voto próximo
Sylvain Pineau

Respostas:

3

A pergunta já foi respondida por @PHPLearnerum comentário. No entanto, aqui está uma resposta mais longa.

Não existe um comando específico, mimecomo o solicitado na pergunta, e sem dúvida um desses comandos pode ser criado. Para adicionar um novo tipo MIME, basta editar o /etc/mime.typesarquivo.

Digamos que você queira adicionar o tipo MIME com extensão e .btc, em seguida,

1. Verifique se o tipo MIME já existe

Abra uma linha de comando e digite a linha abaixo (substitua btcpelo seu ramal)

grep 'btc' /etc/mime.types

Agora, este comando produzirá uma linha, se esse tipo de MIME já estiver adicionado. Parece assim para pesquisas MIME específicas

$ grep 'cpp' /etc/mime.types
text/x-c++src                        c++ cpp cxx cc

$ grep 'py' /etc/mime.types
application/x-python-code                       pyc pyo
text/vnd.debian.copyright
text/x-python                                   py 

$ grep 'btc' /etc/mime.types

Se o seu ramal não btcgerar nenhuma linha (como neste caso), ou se as linhas geradas não incluírem o seu ramal, você deverá criar um novo tipo MIME. Caso contrário, sua extensão já terá um tipo MIME incluído no arquivo /etc/mime.types.

2.1 Criando o tipo MIME (se necessário)

Se não houve saída, ou a saída fornecida não incluiu sua extensão, devemos adicionar um tipo MIME. Para esse tipo na linha de comando

gksudo gedit /etc/mime.types

Modifique o texto a seguir para que a palavra "extensão" seja substituída pela extensão do arquivo (sem marca de ponto), adicione a linha ao final do mime.typesarquivo e salve. Aqui, nossa extensão é bitcoin e escrevemos btc(NÃO .btc) que será vista como uma extensão para os arquivos bitcoin.

text/extension                   extension

E copie a parte 'texto / extensão' modificada.

No nosso caso, parecerá

text/bitcoin-text                btc

Salve o arquivo e saia.

2.2 Adicionando tipo MIME usando .xmlfile eupdate-mime-database

Se a edição do /etc/mime.typesarquivo não funcionar na sua extensão, tente esta solução alternativa.

Crie um novo .xmlarquivo que descreva sua extensão como esta e salve-a.

<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/bitcoin-text">
<glob pattern="*.btc"/>
</mime-type>

Agora, adicione este arquivo à /usr/share/mime/applicationpasta. Depois de adicionar ou modificar o que for necessário, execute o comando

sudo update-mime-database /usr/share/mime

3. Adicionando um ícone ao tipo MIME

Agora precisamos associar um ícone ao tipo MIME. Obtenha um ícone SVG e chame-o de "text-extension.svg" ou qualquer que seja o nome do seu tipo MIME modificado; este será o ícone para representar todas as instâncias do tipo MIME no seu sistema.

Então, renomeamos o arquivo .svg para que ele corresponda ao bitcoin-text.svg (ou "insertYourMIMEtype.svg") para que slashes are replaced with "-"exista no capital letters.

Em seguida, basta executar os seguintes comandos, com 'bitcoin-text' substituído pelo seu tipo MIME.

 sudo cp bitcoin-text.svg /usr/share/icons/gnome/scalable/mimetypes
 sudo gtk-update-icon-cache /usr/share/icons/gnome/ -f

O novo logon e todos os arquivos que terminam na extensão MIME serão exibidos com esse ícone.

C0deDaedalus
fonte
você realmente precisa adicionar o arquivo xml em / usr / share / mime / packages, se você adicioná-lo ao / usr / share / mime / application ao executar o update-mime-database, ele será eliminado
Vlax