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

14

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

mime --set --MIME="image/pjpeg" filename.jpg  
Apprenant PHP
la source
C'est assez vieux, mais peut-être est-il toujours utile: rlog.rgtti.com/2010/11/22/… (désolé, pas le temps de le creuser maintenant ...). Veuillez ajouter une réponse vous-même si cela fonctionne!
Rmano
doublon possible de Comment changer le type MIME d'un fichier?
Sylvain Pineau
2
@SylvainPineau La question que vous avez liée est similaire mais pas en double et il n'y a pas de réponse à ma question dans ce lien, ni aucune réponse à la question du lien elle-même! Sur la base de la réponse acceptée dans ce lien, le problème du demandeur n'était pas de type MIME, mais c'était le contenu du fichier lui-même.
PHP Learner
2
@PHPLearner Regardez help.ubuntu.com/community/AddingMimeTypes , en particulier l'utilisation de fichiers xml etupdate-mime-database
Sylvain Pineau
2
@PHPLearner: J'ai supprimé mon vote serré
Sylvain Pineau

Réponses:

3

La question est déjà répondue par @PHPLearnerdans un commentaire. Cependant, voici une réponse plus longue.

Il n'y a pas de commande particulière comme mimecelle demandée dans la question, et sans doute une telle commande peut être créée. Pour ajouter un nouveau type MIME, il suffit de modifier le /etc/mime.typesfichier.

Disons que vous voulez ajouter un type MIME avec extension .btc, puis

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

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

grep 'btc' /etc/mime.types

Maintenant, cette commande affichera une ligne, si ce type MIME est déjà ajouté. Il 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 btcdans 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'incluait pas votre extension, nous devons ajouter un type MIME. Pour ce type sur la ligne de commande

gksudo gedit /etc/mime.types

Modifiez le texte suivant afin que le mot «extension» soit remplacé par votre extension de fichier (sans point), ajoutez la ligne à la fin du mime.typesfichier et enregistrez. Ici, notre extension est bitcoin et nous écrivons btc(PAS .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 Ajout d'un type MIME à l'aide d'un .xmlfichier etupdate-mime-database

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

Créez un nouveau .xmlfichier 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>

Ajoutez maintenant ce fichier dans le dossier. /usr/share/mime/applicationAprès avoir ajouté ou modifié ce dont vous avez besoin, exécutez la commande

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

3. Ajout d'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 de type MIME sur votre système.

Donc, nous renommons le fichier .svg afin qu'il corresponde à bitcoin-text.svg (ou "insertYourMIMEtype.svg") afin que le slashes are replaced with "-"et le soient 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

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

C0deDaedalus
la source
vous devez réellement ajouter le fichier xml à / usr / share / mime / packages, si vous l'ajoutez à / usr / share / mime / application lorsque vous exécutez update-mime-database, il sera effacé
Vlax