6

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 无关紧要,但它们对我很重要

4

2 回答 2

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
于 2013-05-20T17:32:39.507 回答
1

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

case $(file - <"$file") in
  '-: GIF image'* ) ext=gif ;;
  '-: ASCII text'* ) ext=txt ;;
  # etc
esac
于 2013-05-20T17:26:52.333 回答