¿Cómo asignar (establecer) un tipo MIME a un archivo?

14

¿Hay algún comando que pueda establecer el tipo MIME de un archivo? por ejemplo:

mime --set --MIME="image/pjpeg" filename.jpg  
PHP Learner
fuente
Es bastante antiguo, pero tal vez todavía sea útil: rlog.rgtti.com/2010/11/22/… (lo siento, no hay tiempo para desenterrarlo ahora ...). ¡Agregue una respuesta usted mismo si funciona!
Rmano
posible duplicado de ¿Cómo cambio el tipo MIME para un archivo?
Sylvain Pineau
2
@SylvainPineau ¡La pregunta que ha vinculado es similar pero no es un duplicado y no hay respuesta a mi pregunta en ese enlace, ni ninguna respuesta a la pregunta del enlace en sí! Según la respuesta aceptada en ese enlace, el problema del autor de la pregunta no era el tipo MIME, sino el contenido del archivo.
PHP Learner
2
@PHPLearner Mira help.ubuntu.com/community/AddingMimeTypes , especialmente el uso de archivos xml yupdate-mime-database
Sylvain Pineau
2
@PHPLearner: Eliminé mi voto cercano
Sylvain Pineau,

Respuestas:

3

La pregunta es ya respondió por @PHPLearneren un comentario. Sin embargo, aquí hay una respuesta más larga.

No hay un comando en particular como el mimeque se hace en la pregunta, y sin duda se puede crear uno de estos comandos. Para agregar un nuevo tipo MIME, todo lo que se necesita es editar el /etc/mime.typesarchivo.

Digamos que desea agregar el tipo MIME con extensión .btc, luego

1. Compruebe si el tipo MIME ya existe

Abra una línea de comando e ingrese la siguiente línea (reemplace btccon su extensión)

grep 'btc' /etc/mime.types

Ahora, este comando generará una línea, si ese tipo MIME ya está agregado. Se ve así para búsquedas MIME particulares

$ 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 su extensión no genera ninguna línea (como btcen este caso), o si las líneas desactualizadas no incluyen su extensión, debe crear un nuevo tipo MIME. De lo contrario, su extensión ya tiene un tipo MIME incluido en el archivo /etc/mime.types.

2.1 Crear el tipo MIME (SI es necesario)

Si no hubo salida, o la salida dada no incluyó su extensión, debemos agregar un tipo MIME. Para ese tipo en la línea de comando

gksudo gedit /etc/mime.types

Modifique el siguiente texto para que la palabra "extensión" se reemplace con su extensión de archivo (sin marca de punto), agregue la línea al final del mime.typesarchivo y guárdela. Aquí nuestra extensión es bitcoin y escribimos btc(NO .btc) que se verá como una extensión para los archivos bitcoin.

text/extension                   extension

Y copie la parte modificada 'texto / extensión'.

En nuestro caso se verá como

text/bitcoin-text                btc

Guarda el archivo y cierra.

2.2 Agregar tipo MIME usando el .xmlarchivo yupdate-mime-database

Si la edición del /etc/mime.typesarchivo no funciona para su extensión, puede probar esta solución alternativa.

Cree un nuevo .xmlarchivo que describa su extensión como esta y guárdelo.

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

Ahora agregue este archivo a la /usr/share/mime/applicationcarpeta. Después de agregar o modificar lo que necesite, ejecute el comando

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

3. Agregar un icono al tipo MIME

Ahora necesitamos asociar un icono con el tipo MIME. Obtenga un icono SVG y asígnele el nombre "text-extension.svg", o como se llame su tipo MIME modificado; este será el icono para representar todas las instancias del tipo MIME en su sistema.

Por lo tanto, cambiamos el nombre del archivo .svg para que coincida con bitcoin-text.svg (o "insertYourMIMEtype.svg") para que slashes are replaced with "-"se encuentren no capital letters.

Luego, simplemente ejecute los siguientes comandos, con 'bitcoin-text' reemplazado por su tipo MIME.

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

Reiniciar y todos los archivos que terminan en la extensión MIME se mostrarán con ese icono.

C0deDaedalus
fuente
en realidad necesita agregar el archivo xml a / usr / share / mime / packages, si lo agrega a / usr / share / mime / application cuando ejecuta update-mime-database, se borrará
Vlax