ファイルのMIMEタイプ(Content-Type)を確認するにはどうすればよいですか?


107

Linux bashスクリプトでファイルのMIMEタイプ(または「Content-Type」と呼ばれます)を確認する方法はありますか?

私がそれを必要とする理由は、ImageShackがファイルをアップロードするためにそれを必要としているように見えるため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>

これは機能しますが、MIME-TYPEを指定する必要があります。

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

回答:


228

を使用し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

ウィンドウの下でGit bashを使用する場合はそうではありません。
tivo 2011

1
取得するにはちょうどあなたができるMIMEタイプを:file --mime-type FILE_NAME | awk '{print $2}'
ジャスティン・ジェンキンス

23
@JustinJenkins -bはファイル名を省略しfile -b --mime-type FILE_NAMEてMIMEタイプのみを返します
jaygooby

またはkmimetypefinder filename
bitek 2013

認識しない、application/xmlまたはtext/xml
Tseng

24

あなたが使用できる他のツールの1つ(ファイル以外)は xdg-mime

例えば xdg-mime query filetype <file>

あなたがヤムを持っているなら、

yum install xdg-utils.noarch

xdg-mimeとSubrip(subtitles)ファイル上のファイルの比較例

$ xdg-mime query filetype subtitles.srt
application/x-subrip

$ file --mime-type subtitles.srt
subtitles.srt: text/plain

上記のファイルでは、プレーンテキストとしてのみ表示されます。


xdg-mimeクエリファイルタイプinstall.sql; xprop:ディスプレイを開けません ''
コーダー

xdg-mimeはbashスクリプトであり、環境変数に大きく依存しています。セッションにログインしていない場合、DEなどの一部は設定されません。$ less $(which xdg-mime)
ぜひ

10

file version <5: file -i -b / path / to / file
file version> = 5: file --mime-type -b / path / to / file


1
ファイルのバージョンとはどういう意味ですか?
user2867106

1
@ user2867106彼はファイルコマンドのバージョンを意味すると思います。
jgh fun-run

4

オプションを指定してfileコマンドを試してください-i

-ioption fileコマンドに、従来の人間が読める形式ではなく、MIMEタイプの文字列を出力させます。したがって、それはとtext/plain; charset=us-asciiいうよりは言うかもしれませんASCII text


2

file --mimeは機能しますが、-mime-typeは機能しません。少なくとも私のRHEL 5では。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.