web-dev-qa-db-fra.com

Comment affecter (définir) un type MIME à un fichier?

Existe-t-il une commande permettant de définir le type MIME d'un fichier? par exemple:

mime --set --MIME="image/pjpeg" filename.jpg  
10
PHP Learner

La question est déjà répond par _@PHPLearner_ dans son commentaire lui-même. Cependant, pour des raisons de réponse, le voici.

Il n’existe pas de commande particulière en tant que telle mime telle qu’elle a été posée dans la question, et une telle commande peut sans aucun doute être créée. Pour ajouter un nouveau type MIME, il suffit de modifier le fichier /etc/mime.types.

Supposons que vous souhaitiez ajouter un type MIME avec l'extension _.btc_, puis

1. Vérifier si le type MIME existe déjà

Ouvrez une ligne de commande et entrez la ligne ci-dessous. (remplacez btc par votre extension)

$ grep 'btc' /etc/mime.types

Maintenant, cette commande affichera la ligne, si ce type MIME est déjà ajouté. Cela ressemble à ceci pour des recherches MIME particulières

_$ 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
_

Si votre extension ne génère aucune ligne (comme btc dans ce cas) ou si les lignes générées n'incluent pas votre extension, vous devez créer un nouveau type MIME. Sinon, votre extension a déjà un type MIME inclus dans le fichier /etc/mime.types

2.1 Création du type MIME (SI nécessaire)

S'il n'y a pas eu de sortie ou si la sortie donnée n'inclut pas votre extension, nous devons ajouter un type MIME. Pour ce type en ligne de commande

$ gksudo gedit /etc/mime.types

Modifiez le texte suivant de sorte que "l'extension" de Word soit remplacée par votre extension de fichier _(no period mark)_, ajoutez la ligne à la fin du fichier mime.types et enregistrez. Ici notre extension est bitcoin et nous écrivons btc (NOT .btc) qui sera vu comme une extension pour les fichiers bitcoin.

_text/extension                   extension
_

Et copiez la partie 'texte/extension' modifiée.

Dans notre cas, cela ressemblera à

_text/bitcoin-text                btc
_

Enregistrez le fichier et quittez.

2.2 Ajouter le type MIME en utilisant le fichier _.xml_ et le _update-mime-database_

Si la modification du fichier _/etc/mime.types_ ne fonctionne pas pour votre extension, vous pouvez essayer cette solution de contournement.

Créez un nouveau fichier _.xml_ qui décrit votre extension comme ceci et enregistrez-le.

_<?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>
_

Maintenant, ajoutez ce fichier dans le dossier /usr/share/mime/application. Après avoir ajouté ou modifié ce dont vous avez besoin, exécutez la commande

$ Sudo update-mime-database/usr/share/mime

3. Ajouter une icône au type MIME

Nous devons maintenant associer une icône au type MIME. Obtenez une icône SVG et nommez-la "text-extension.svg", ou quel que soit le nom de votre type MIME modifié; ce sera l'icône pour représenter toutes les instances du type MIME sur votre système.

Nous avons donc renommé le fichier .svg pour qu'il corresponde à bitcoin-text.svg (ou "insertYourMIMEtype.svg"), de sorte que _slashes are replaced with "-"_ et il y a _no capital letters_.

Ensuite, exécutez simplement les commandes suivantes, avec 'bitcoin-text' remplacé par votre type MIME.

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

Relogin et tous les fichiers se terminant par l'extension MIME s'afficheront avec cette icône.

2
C0deDaedalus