¿Hay alguna forma de averiguar el tipo MIME (o se llama "Content-Type"?) De un archivo en un script bash de Linux?
La razón por la que lo necesito es porque ImageShack parece necesitarlo para cargar un archivo, ya que por alguna razón detecta el archivo .png como un application/octet-streamarchivo.
Revisé el archivo y realmente es una imagen PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
Esto me da el error:
$ curl -F "fileupload=@/1.png" http://www.imageshack.us/upload_api.php
<links>
<error id="wrong_file_type">Wrong file type detected for file 1.png:application/octet-stream</error>
</links>
Esto funciona, pero necesito especificar un TIPO MIME.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
menta
fuente
fuente

file --mime-type FILE_NAME | awk '{print $2}'file -b --mime-type FILE_NAMEdevuelve solo el tipo mimekmimetypefinder filenameapplication/xmlotext/xmluna de las otras herramientas (además del archivo) que puede usar es
xdg-mimep.ej
xdg-mime query filetype <file>si tienes yum,
yum install xdg-utils.noarchUn ejemplo de comparación de xdg-mime y archivo en un archivo Subrip (subtítulos)
en el archivo anterior solo lo muestra como texto sin formato.
fuente
$ less $(which xdg-mime)versión de archivo <5: archivo -i -b / ruta / a /
archivo versión de archivo> = 5: archivo --mime-type -b / ruta / a / archivo
fuente
Pruebe el
filecomando con-iopción.-iopción Hace que el comando de archivo genere cadenas de tipo mime en lugar de las más tradicionales legibles por humanos. Por lo tanto, puede decir entext/plain; charset=us-asciilugar deASCII text.fuente
file --mime funciona, pero no --mime-type. al menos para mi RHEL 5.
fuente