如何find一个文件“MIMEtypes(Content-Type?)”?

有没有办法find一个Linux bash脚本中的文件的MIMEtypes(或称为“内容types”…)?

我需要它的原因是因为imageshack似乎需要它上传一个文件,因为它检测到.png文件为“application / octet-stream”…

我检查过这个文件,它确实是一个.png

$ cat /1.png ?PNG (with a heap load of random characters) 

这给了我错误:

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

这工作,但我需要指定一个MIMEtypes。

 $ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php 

使用file 。 例子:

 > file --mime-type image.png image.png: image/png > file -b --mime-type image.png image/png > file -i FILE_NAME image.png: image/png; charset=binary 

其他工具之一(除了文件),你可以使用的是xdg-mime

例如xdg-mime query filetype query filetype <file>

如果你有百胜餐饮,

yum install xdg-utils.noarch

Subrip(字幕)文件中的xdg-mime和文件的示例比较

 $ xdg-mime query filetype subtitles.srt application/x-subrip $ file --mime-type subtitles.srt subtitles.srt: text/plain 

在上面的文件中只显示为纯文本。

文件版本<5:文件-i -b / path / to / file
文件版本> = 5:文件–mime -type -b / path / to / file

使用-i选项尝试file命令。

-i选项使文件命令输出MIMEtypes的string,而不是传统的可读的string。 因此可以说text/plain; charset=us-ascii text/plain; charset=us-ascii而不是ASCII text

文件–mime工作,但不是 – mime型。 至less对于我的RHEL 5来说。