Tyi*_*ilo 4 filenames mime-types curl
我想将文件下载curl
到具有适当扩展名的临时目录。
目前我做这样的事情:
tmp="$(mktemp -t 'curl')"
curl -o "$tmp" http://example.com/generate_image.php?id=44
file -b --mime-type "$tmp"
Run Code Online (Sandbox Code Playgroud)
这将打印下载文件的 MIME 类型,但如何将这些映射到扩展名?
正如你所看到的,我不能只提取 url 的“扩展名”,因为那会给出.php
而不是.png
.
我知道 mime 类型和文件扩展名之间没有一对一的映射,但它应该处理普通的文件扩展名。
与 windows 不同,unix 通常没有file extensions
. 但是,您可以使用该/etc/mime.types
文件来提供这些翻译:
image/jpeg: jpg
image/gif: gif
image/png: png
image/x-portable-pixmap: ppm
image/tiff: tif
Run Code Online (Sandbox Code Playgroud)
然后按扩展名匹配:
$ ext=$(grep "$(file -b --mime-type file.png)" /etc/mime.types | awk '{print $2}')
$ echo $ext
png
Run Code Online (Sandbox Code Playgroud)