package main
import (
"flag"
"fmt"
"log"
"os"
"github.com/gabriel-vasile/mimetype"
"github.com/rakyll/magicmime"
)
func main() {
var (
path string
)
flag.StringVar(&path, "file", "", "文件名")
flag.Parse()
if err := magicmime.Open(magicmime.MAGIC_MIME_TYPE | magicmime.MAGIC_SYMLINK | magicmime.MAGIC_ERROR); err != nil {
log.Fatal(err)
}
defer magicmime.Close()
buf := make([]byte, 64)
f, _ := os.Open(path)
f.Read(buf)
mimeType, err := magicmime.TypeByBuffer(buf)
if err != nil {
log.Fatalf("error occured during type lookup: %v", err)
}
log.Printf("mime-type: %v", mimeType)
mtype, err := mimetype.DetectFile(path)
fmt.Println(mtype.String(), mtype.Extension())
}
先安装依赖sudo apt-get install libmagic-dev
编译后,运行:
perl脚本
# ./main -file ./test.pl
2022/08/03 11:36:41 mime-type: text/x-perl
可执行文件:
./main -file ./main
2022/08/03 11:36:24 mime-type: application/x-executable