MIMEタイプが与えられたら、対応するファイル拡張子を取得します。

MIMEタイプが与えられたら、対応するファイル拡張子を取得します。

curl適切な拡張子を持つ一時ディレクトリにファイルをダウンロードしたいと思います。

現在、私は次のことを行います。

tmp="$(mktemp -t 'curl')"
curl -o "$tmp" http://example.com/generate_image.php?id=44
file -b --mime-type "$tmp"

これにより、ダウンロードしたファイルのMIMEタイプが印刷されます。しかし、拡張子にどのようにマッピングしますか?

ご覧のとおり、URLの「拡張子」を抽出することはできませ.php.png

MIMEタイプとファイル拡張子の間に1対1のマッピングがないことはわかっていますが、通常のファイル拡張子を処理する必要があります。

ベストアンサー1

Windowsとは異なり、Unixは通常そうではありませんfile extensions。ただし、この/etc/mime.typesファイルを使用して次の翻訳を提供できます。

image/jpeg: jpg
image/gif: gif
image/png: png
image/x-portable-pixmap: ppm
image/tiff: tif

次に、拡張子で一致させます。

$ ext=$(grep "$(file -b --mime-type file.png)" /etc/mime.types | awk '{print $2}')

$ echo $ext
png

おすすめ記事