Wie ordne ich einer Datei einen MIME-Typ zu?

14

Gibt es einen Befehl, der den MIME-Typ einer Datei festlegen könnte? beispielsweise:

mime --set --MIME="image/pjpeg" filename.jpg  
PHP-Lerner
quelle
Es ist ziemlich alt, aber vielleicht ist es immer noch nützlich: rlog.rgtti.com/2010/11/22/… (Entschuldigung, keine Zeit, es jetzt herauszufinden ...). Bitte geben Sie selbst eine Antwort ein, wenn es funktioniert!
Rmano
mögliches Duplikat von Wie ändere ich den MIME-Typ für eine Datei?
Sylvain Pineau
2
@ SylvainPineau Die Frage, die Sie verlinkt haben, ist ähnlich, aber kein Duplikat. Es gibt keine Antwort auf meine Frage in diesem Link und auch keine Antwort auf die Link-Frage selbst! Basierend auf der akzeptierten Antwort in diesem Link war das Problem des Fragestellers nicht der MIME-Typ, sondern der Dateiinhalt.
PHP Learner
2
@PHPLearner Schauen Sie sich help.ubuntu.com/community/AddingMimeTypes an , insbesondere die Verwendung von XML-Dateien undupdate-mime-database
Sylvain Pineau
2
@PHPLearner: Ich habe meine enge Abstimmung entfernt
Sylvain Pineau

Antworten:

3

Die Frage ist schon beantwortet von @PHPLearnerin einem Kommentar. Hier ist jedoch eine längere Antwort.

Es gibt keinen bestimmten Befehl, wie mimeer in der Frage gestellt wird, und ohne Zweifel kann ein solcher Befehl erstellt werden. Um einen neuen MIME-Typ hinzuzufügen, müssen Sie nur die /etc/mime.typesDatei bearbeiten .

Angenommen, Sie MIME - Typ mit der Erweiterung hinzufügen möchten .btc, dann

1. Überprüfen Sie, ob der MIME-Typ bereits vorhanden ist

Öffnen Sie eine Befehlszeile und geben Sie die folgende Zeile ein (durch btcIhre Erweiterung ersetzen )

grep 'btc' /etc/mime.types

Dieser Befehl gibt nun eine Zeile aus, wenn dieser MIME-Typ bereits hinzugefügt wurde. So sieht es bei bestimmten MIME-Suchen aus

$ 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

Wenn Ihre Erweiterung keine Zeilen ausgibt (wie btcin diesem Fall) oder wenn die ausgegebenen Zeilen Ihre Erweiterung nicht enthalten, müssen Sie einen neuen MIME-Typ erstellen. Andernfalls enthält Ihre Erweiterung bereits einen MIME-Typ /etc/mime.types.

2.1 Erstellen des MIME-Typs (IF erforderlich)

Wenn keine Ausgabe vorhanden war oder die angegebene Ausgabe Ihre Erweiterung nicht enthielt, müssen wir einen MIME-Typ hinzufügen. Für diesen Typ in der Befehlszeile

gksudo gedit /etc/mime.types

Ändern Sie den folgenden Text so, dass das Wort "Erweiterung" durch Ihre Dateierweiterung ersetzt wird (kein Punkt), fügen Sie die Zeile am Ende der mime.typesDatei hinzu und speichern Sie sie. Hier ist unsere Erweiterung Bitcoin und wir schreiben btc(NICHT .btc), das als Erweiterung für die Bitcoin-Dateien angesehen wird.

text/extension                   extension

Kopieren Sie den geänderten Teil "Text / Erweiterung".

In unserem Fall wird es so aussehen

text/bitcoin-text                btc

Speichern Sie die Datei und beenden Sie sie.

2.2 MIME-Typ mit .xmlfile und hinzufügenupdate-mime-database

Wenn das Bearbeiten der /etc/mime.typesDatei für Ihre Erweiterung nicht funktioniert, können Sie diese Problemumgehung versuchen.

Erstellen Sie eine neue .xmlDatei, die Ihre Erweiterung wie folgt beschreibt und speichern Sie sie.

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

/usr/share/mime/applicationFügen Sie diese Datei nun in den Ordner ein. Führen Sie den Befehl aus, nachdem Sie die gewünschten Elemente hinzugefügt oder geändert haben

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

3. Hinzufügen eines Symbols zum MIME-Typ

Jetzt müssen wir dem MIME-Typ ein Symbol zuordnen. Holen Sie sich ein SVG-Symbol und nennen Sie es "text-extension.svg" oder was auch immer Ihr modifizierter MIME-Typ heißt. Dies ist das Symbol für alle Instanzen des MIME-Typs auf Ihrem System.

Also benennen wir die .svg-Datei so um, dass sie mit bitcoin-text.svg (oder "insertYourMIMEtype.svg") übereinstimmt, sodass die slashes are replaced with "-"und da sind no capital letters.

Führen Sie dann einfach die folgenden Befehle aus, wobei "Bitcoin-Text" durch Ihren MIME-Typ ersetzt wird.

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

Neu anmelden und alle Dateien, die mit der MIME-Erweiterung enden, werden mit diesem Symbol angezeigt.

C0deDaedalus
quelle
Sie müssen die XML-Datei tatsächlich zu / usr / share / mime / packages hinzufügen. Wenn Sie sie zu / usr / share / mime / application hinzufügen, während Sie update-mime-database ausführen, wird sie gelöscht
Vlax