我可以使用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无关紧要,但它们对我很重要
答案 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