获取默认/首选文件扩展名

时间:2013-05-20 17:15:55

标签: unix

我可以使用file命令识别文件类型。我可以获得该文件的默认(首选)扩展名吗?

例如

tmp_206.file: GIF image data, version 89a, 17 x 17
tmp_202.file: ASCII text, with very long lines, with no line terminators

它将是.gif.txt

我知道扩展对UNIX无关紧要,但它们对我很重要

2 个答案:

答案 0 :(得分:2)

某些文件类型支持jpeg文件的jpe,jpeg,jpg等多个扩展名。

你可以做的是首先使用:

获取mime类型
mimleType=$(awk -F';' 'NF>1{print $1}' < <(file -bi logo.jpeg))

然后使用此awk获取文件扩展名:

awk -v mt=$mimeType '$1==mt{print $2}' /Applications/MAMP/conf/apache/mime.types

<强>输出:

jpeg

答案 1 :(得分:0)

如果您有一组相当有限的扩展程序,那么创建从file输出到您首选扩展程序的映射并不难。

case $(file - <"$file") in
  '-: GIF image'* ) ext=gif ;;
  '-: ASCII text'* ) ext=txt ;;
  # etc
esac