news 2026/9/27 2:56:11

文件类型识别指南:从文件头到扩展名,读懂12种常见格式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
文件类型识别指南:从文件头到扩展名,读懂12种常见格式

你有没有过这种时刻:从网上下载一个文件,后缀名奇奇怪怪,或者干脆没有后缀,双击之前心里就开始犯嘀咕——这到底是什么文件?会不会是个病毒?该用哪个软件打开?我这些年帮人处理电脑和服务器问题,几乎每一次都是从同一个问题开始:“你先告诉我,这个文件的真实类型是什么?”结果大多数人支支吾吾,最后只能念出扩展名。其实扩展名只是文件最外层的一张贴纸,真正决定文件身份的是它内部的二进制结构。

这篇文章会把最常见的12种文件类型从头到尾捋一遍,同时专门聊几个特别容易让人翻车的真实场景:为什么安装SQL时会突然跳出解压提示,但拿到的文件明明是msi;为什么硬盘分区变成raw之后,chkdsk直接罢工;在openEuler这类Linux系统上,到底支持哪些文件类型。无论你是办公用户、开发工程师还是一线运维,看完应该都能少踩几个坑。

1. 文件类型是怎么被识别的:扩展名只是表层

1.1 扩展名会被改,文件头才是“身份证”

你把一个记事本文件从 .txt 改成 .exe,图标确实会变成可执行程序的样式,但如果内容是纯文本,双击它大概率还是打不开,或者弹出一堆莫名其妙的错误。反过来,把真正的 .exe 改成 .txt,它本质上依然是可执行程序。这个例子说明一个关键点:扩展名只是操作系统用来关联“打开方式”的快捷标签,改标签并不会改变包裹里的实物。

真正决定类型的是文件开头那几颗字节,业内叫“魔数”或者“文件头”。PNG 图片开头固定是 89 50 4E 47,PDF 开头是 %PDF,ZIP 压缩包开头是 PK,Windows 的 exe 开头是 4D 5A(也就是 MZ)。这些字节是格式规范写死的,设计者故意留这个签名,就是为了让工具能在不看扩展名的情况下认出它。你可以把扩展名想象成快递盒上的手写备注,文件头才是盒子里商品包装上印着的生产批号,备注贴错了,商品不会变。

1.2 系统其实在看两个地方:扩展名和内容

Windows 的资源管理器主要靠扩展名去翻注册表,找到“这个后缀应该由谁打开”,所以你会看到不同文件显示不同图标和“类型”列。但很多底层工具根本不看扩展名:Linux 的 file 命令、7-Zip、磁盘取证软件,都会直接读文件内容,对照内置的魔数库给出结论。所以“文件类型”这个词有时候指系统关联,有时候指格式本体,我们下面讨论的12种常见文件类型,指的都是格式本体。

这也就解释了为什么改后缀之后文件“看起来”变了,但实际没变。判断一个文件的真实类型,最可靠的办法永远是读文件头,而不是看文件名。很多人以为“类型”列里写的“JPEG 图像”就是真理,其实那一行也可能来自扩展名,文件头才是最后的裁判。

1.3 光看文件头够不够

基本够用,但有个细节需要注意:有些格式是“容器”,里面装了另一个东西。比如 docx、xlsx、apk 实际都是 ZIP 容器,文件头显示 PK;再往容器内部看,docx 里有[Content_Types].xml,apk 里有AndroidManifest.xml。所以读文件头能定位到大类,想判断更精确的用途,需要打开容器看内部清单。这个习惯在排查问题时特别有用,后面第3章里提到的几个热搜问题,都会用到这个思路。

2. 12种常见文件类型全览:按用途分类的实用清单

2.1 一张表看全12类

我按日常使用频率和用途,把文件分成下面这12大类。这张表的依据不是高深的格式规范,而是“你拿到这个文件准备拿来干嘛”:

序号类型常见扩展名典型特征/文件头常见场景
1文本与文档txt / md / docx / pdfPDF头为%PDF;docx是ZIP容器办公、阅读、知识管理
2表格与数据csv / xlsx / parquetcsv纯文本;xlsx是ZIP;parquet有PAR1数据交换、报表分析
3图像jpg / png / gifFF D8、89 50 4E 47、GIF8图片浏览、网页素材
4音频mp3 / wav / flacID3、RIFF....WAVE、fLaC听歌、配音、音轨处理
5视频mp4 / mkv / movftyp、1A 45 DF A3、moov视频剪辑、播放
6压缩包与归档zip / rar / 7z / tar.gzPK、Rar!、7z、1F 8B文件传输、备份归档
7可执行与安装包exe / msi / apk / binMZ、D0 CF 11 E0、ZIP容器软件安装、运行程序
8数据库sqlite / db / mdf“SQLite format 3”、版本头业务库、轻量存储
9系统与配置ini / conf / reg / pst纯文本或注册表/邮件结构系统设置、软件配置
10日志log / jsonl / evtx文本日志或EVTX二进制事件排障、审计、监控
11虚拟镜像与磁盘vmdk / vhd / qcow2 / raw各厂商魔数;raw无统一头虚拟机、磁盘备份
12字体与资源ttf / otf / woff2 / dll字体引擎签名;DLL也是PE排版渲染、界面设计

2.2 为什么按用途分而不是按格式分

我刻意按“用途”而不是“格式族”来分。因为普通人和运维拿到文件,第一反应是“我要拿它干什么”,而不是“它是基于什么算法组织的”。知道大类之后,再往深处走才有方向:视频和音频都可能是流媒体容器,但打开它们的软件完全不同;数据库文件和文本文件同样都存数据,但绝不能用文本编辑器随便改。以用途划分,排查问题的效率会高很多。

另外,这12类里有几个“撞车”名称容易把人绕晕,最典型的就是 raw。图像类里,raw 指相机的原始感光数据;磁盘镜像里,raw 指未封装文件系统的裸镜像;Windows 资源管理器里,磁盘分区“变成RAW”又代表文件系统无法识别。这三个 raw 其实不是同一个概念,但名字一模一样,所以看到“raw”时一定要先确认语境。

2.3 几个特别容易误判的例子

扩展名为 .bin 或 .dat 的文件,光看名字基本猜不出内容,它们可能是镜像、数据库、固件、缓存,甚至是个视频,必须用工具识别。.docx 和 .xlsx 在 file 工具下会被报告为“Zip archive”,如果你不知道它们内部是XML,很容易以为自己下载错了。无后缀文件也常出现在 Linux 工具链、固件包和自解压包里,这时候记住一条:不要双击,先读文件头。

3. 从三个热门问题看文件类型识别翻车现场

3.1 SQL安装跳出解压提示,但文件其实是MSI

先说一个非常常见的场景。有人从官网或镜像站下载 SQL Server 相关的安装引导程序,运行后屏幕上弹出“正在解压文件”的进度条,但下载到的文件明明后缀是 .msi。第一反应往往是“是不是文件坏了,或者被包装成了别的格式”,于是有人直接把 .msi 改成 .zip 试图解压,结果越搞越乱。

MSI 真正的身份是什么?它是 Windows Installer 的安装包,底层使用复合文档结构,文件头是 D0 CF 11 E0 开头的 OLE 家族。它内部不是一堆散文件,而是一张张结构化的表,记录组件、文件、注册表项和安装流程。所以它跟 zip 压缩包完全不是一回事,格式哲学都不一样。

那“解压提示”从哪来的?最常见的原因是:你双击的根本不是那个 msi,而是同目录或下载到的另一个引导程序 exe。SQL Server 的离线安装介质经常是“引导器 + 内部MSI + CAB数据包”的组合,用户在官网点下载时拿到的其实是一个 exe,双击后它先把自己携带的压缩资源释放到临时目录,显示“解压中”,随后才调用内部真正的 msi。如果你下到的文件确实以 .msi 结尾,又弹出解压提示,则可能是某些下载站做了二次封装,变成了自解压包;也可能是浏览器或下载工具把文件写坏了后缀。但无论是哪种,第一条原则都是:先确认真实类型,再决定下一步。

怎么确认?三个办法。第一,右键属性看“类型”说明,但这条只作为参考;第二,用 7-Zip 打开这个文件,如果打开后看到的是“Windows Installer”结构或一堆系统表,说明是标准 MSI;如果看到的是真实文件清单,说明是自解压包;第三,直接读文件头,标准 MSI 是 D0 CF 11 E0,zip 容器则是 PK。后两条更可信。确认是标准 MSI 后,不用理会“解压提示”,直接双击或执行msiexec /i安装即可;如果想提取其中的文件而不是安装,用msiexec /a加上目标目录参数,这才是正确途径。

3.2 文件系统变成RAW,chkdsk为何罢工

第二个高频问题来自磁盘管理:某块分区或移动硬盘在电脑上显示为 RAW,想用 chkdsk 修复,结果系统直接提示“无法供 RAW 驱动器使用”,很多人当场懵掉。先澄清一个概念:分区变成 RAW,不是变成了图片文件,而是 Windows 读取分区时找不到可识别的文件系统——它既不是 NTFS,也不是 FAT32/exFAT,于是用一个占位符 RAW 表示“我不知道这是什么”。这其实是存储层的“文件类型丢失”状态。

chkdsk 之所以拒绝工作,是因为这个工具必须知道分区用的是哪种文件系统,它才能遍历文件表、连锁检查目录项。面对一个连类型都读不出来的 RAW 分区,chkdsk 就像让一个不认识仪表盘的司机去修发动机,它连该从哪里下刀都不知道,所以直接报错。RAW 的成因通常是:异常断电、分区表或引导扇区损坏、坏道、第三方分区工具误操作,甚至病毒感染。

遇到 RAW,千万别格式化,也别听网上一些“先跑一遍 chkdsk /f”的说法。正确顺序应该是:第一步,停掉一切写入操作,不要在这个盘上新建文件;第二步,先做整盘或分区镜像,把数据抢救的底版留下来;第三步,用 TestDisk 这类工具尝试重建分区表和引导扇区;第四步,如果重建失败或者文件急需找回,用磁盘级恢复软件扫描镜像,把文件记录按扇区拼回来。整个过程里,镜像备份是核心。很多人在 RAW 状态下强行 chkdsk,结果旧文件没回来,新写入的数据还把现场覆盖了,悔都来不及。我自己的习惯是:见 RAW、先镜像、再修复,顺序一次都不能乱。

3.3 openEuler系统上支持哪些文件类型

第三个热搜问题问的是 openEuler 系统支持的文件类型,但它其实包含两层意思。第一层是文件系统类型,也就是格式化分区时选用的格式;第二层才是我们前面聊的具体文件格式。

在文件系统层面,openEuler 使用的是 Linux 内核的 VFS 框架,常见可用的有 ext4、xfs、btrfs、vfat(对应 FAT32)、exfat、ntfs(通过 ntfs-3g),还有 iso9660 光盘格式,以及运行时内存盘 tmpfs。安装系统时默认通常给 ext4 或 xfs 二选一,具体范围还要看你用的内核版本和官方文档,不同发行版本的支持清单会有差异。如果要快速确认当前分区用的是什么文件系统,可以执行df -T看 Type 列,或者用lsblk -f看每个分区的 FSTYPE。

在文件类型层面,Linux 那句著名的“一切皆文件”才是精髓。用ls -l查看长列表时,第一列第一个字符就在告诉你这个东西的类型:-表示普通文件,d是目录,l是符号链接,b是块设备,c是字符设备,s是套接字,p是管道。也就是说,Linux 把磁盘分区、终端、管道都抽象成文件来管理,这与 Windows 按扩展名区分类型完全是两套哲学。实际操作中,查看某个文件的具体格式仍然用 file 命令,它会直接告诉你“这是 JPEG 图片”还是“这是 shell 脚本文本”。做运维巡检时,这几个命令配合起来,基本能覆盖所有和文件类型有关的排障需求。

4. 实际动手:几条命令读透文件真实身份

4.1 Windows下不装第三方工具读文件头

Windows 没有内置 file 命令,但用 PowerShell 也能读文件头。最简单的就是 Format-Hex:

Format-Hex -Path .\download.installer -Count 16

这个命令会把文件开头16个字节以十六进制和 ASCII 两列打印出来,对照第4.3节的速查表就能判断大概类型。如果不想看整体格式,用下面这段直接输出字节列表:

$bytes = [System.IO.File]::ReadAllBytes("C:\path\to\file") $bytes[0..15] | ForEach-Object { '{0:X2}' -f $_ }

执行结果会得到类似50 4B 03 04的序列。到这里如果能对上 PK,说明至少是个 zip 容器;如果看到D0 CF 11 E0,说明是 OLE 复合文档,可能是老版 Office 或 MSI。这个操作只读不改,安全得很,适合在双击任何陌生文件之前先验明正身。

4.2 Linux和macOS:file命令一条搞定

在 Linux 和 macOS 上,判断文件类型是极轻松的事:

file image.unknown

输出示例:image.unknown: JPEG image data, JFIF standard 1.01, resolution 72x72, segment length 16。系统用预设的魔数库magic.mgc逐个比对文件头,几毫秒就给出答案。还可以加-b去掉文件名前缀、-z深入观察压缩文件内部。想看原始字节头,配合 xxd:

xxd -l 16 image.unknown

实测下来,file 对无后缀文件、下载到一半的损坏文件、伪装的样本都比较敏感。拿到一个“身份不明”的文件,我总是先在终端跑一条 file,再决定是否打开。十次有九次,答案就在输出里。

4.3 常用文件头速查表

把这几年用得最多的几组文件头整理成一张速查表,建议直接存下来:

十六进制文件头对应类型
4D 5AWindows 可执行程序(exe/dll/ocx)
50 4B 03 04ZIP 容器(zip/docx/xlsx/apk)
D0 CF 11 E0OLE 复合文档(旧版Office/msi)
25 50 44 46PDF 文档
89 50 4E 47PNG 图片
FF D8 FFJPEG 图片
47 49 46 38GIF 图片
1F 8B 08gzip 压缩流
52 61 72 21RAR 压缩包
37 7A BC AF7z 压缩包
7F 45 4C 46ELF(Linux 可执行文件/库)
66 74 79 70ISO Base Media(MP4/MOV)
1A 45 DF A3Matroska 视频容器(MKV)
53 51 4C 69 74 65SQLite 数据库文件

表格后面补一句:文件头能帮你定位到“大类”,但大类内部还有细分。比如同样是 4D 5A 开头的 DLL 和 EXE 都是 PE 格式,进一步区分要看 PE 头里的 subsystem 字段;同样是 PK 开头,docx 和 zip 还需要查看内部清单。不过对日常排障来说,确定到大类已经能解决绝大多数问题了。

5. 常见疑问速查与避坑清单

5.1 高频问题一表理清

问题结论或建议
修改扩展名是不是就能改变文件类型不能。真实类型由文件内容决定,改后缀只会破坏关联,让正确的软件打不开它
遇到没有后缀的文件怎么办不要双击。先用 file 或十六进制看文件头,再决定用什么软件打开
MSI 能不能直接改成 zip 解压标准 MSI 不是 zip,改为 zip 没有意义。提取文件用 msiexec /a,确认是 zip 容器的才可解压
chkdsk 能修复 RAW 分区吗基本上不能。RAW 状态下先做镜像备份,再用 TestDisk 或磁盘级恢复工具处理
怎么查 Linux 分区的文件系统类型df -T、lsblk -f、mount,三选一
双击未知文件提示“没有关联程序”先查类型找到合适的软件,不要盲目安装“万能播放器/万能解码器”

这里单独展开两句。改扩展名这件事,网上有大量“格式转换教程”其实就是在教人改后缀,比如把 .txt 改成 .csv,把 .flac 改成 .mp3。这些操作不会改变编码,用专业工具一读还是原格式。真正需要转换时应该用转换软件,让软件重新编码。改后缀唯一的实际作用是调整文件关联,让某些程序愿意认它,但内容没变。

再说“万能解码器”这个坑。遇到打不开的视频,不少人会搜“万能播放器”,装完发现全是广告弹窗和捆绑软件,播放问题还没解决。正规做法是先用工具确认文件容器类型,再用对应的播放器或解码包。绝大多数播放不了的情况,其实是文件下载不完整,而不是缺解码器。

5.2 踩坑清单:这些教训是我一条条试出来的

第一,重要磁盘在出现 RAW 症状后,第一件事是断掉写入,不是“试试看”。一次格式化或一次强制修复,可能就让原本还能恢复的数据彻底消失。我见过太多人因为“救盘心切”把最后的复原机会也覆盖了。

第二,7-Zip 是试探未知文件的低成本工具,但它不是万能识别器。它能打开很多复合格式,如果列出的是“Windows Installer”这种结构,你就该知道它不适合直接用解压逻辑去折腾。数字世界的工程问题,前提永远是“先判断,再动作”。

第三,安装包弹出“解压中”并不等于文件坏了。很多商业软件安装介质本身就是引导器+内部包的组合,第一次解压是正常流程,先看官方文档,再决定要不要动手改文件。动手越早,往往错得越远。

最后分享一个每天都在用的习惯。我在收到来路不明的文件时,第一件事永远是“读文件头”,而不是双击。多年前帮人恢复过一个看似损坏的项目文档,名字被乱写成 .tmp,所有人都在找原始文件。我在 Linux 下跑了一句 file 命令,返回结果直接告诉我这是 Zip archive data,里面躺着 docx 的目录结构,改回 .docx 之后内容一字不丢。后来我带过的团队,新人入职我都会专门讲一遍这个知识点:文件类型不是玄学,它会把答案老老实实写在最前面那几颗字节里,只是大多数人从没往那儿看过。这个习惯每次只花你几秒钟,但关键时刻,能省下你一整天。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 2:55:58

SAR相位梯度自聚焦(PGA)MATLAB实战:运动误差补偿与成像质量提升

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 2:54:21

逆周期设备保卫战:山东制造业一把手的“4+1”法则,为何选淄博添键修大功率进口变频器及直流调速器?

—前4条是战略标配,第5条是穿越周期的底牌在制造业微利内卷的当下,真正能带企业穿越周期的顶级一把手,拼的不是产能规模,而是战略定力。那些把企业做到头部的掌门人,每天只死磕这5条法则。前四条:顶级一把手…

作者头像 李华
网站建设 2026/9/27 2:46:31

哪些情况算设计变更?6类一次说清

工地上一遇事就喊"走个变更"——工艺要调、政策变了、地底挖出东西了、图纸自己漏了……到底哪些才算"设计变更"?边界一模糊,该走变更流程的混进了洽商,不该走的又硬套变更,台账从根上就乱了。 一句话先给结论…

作者头像 李华
网站建设 2026/9/27 2:45:52

从器件物理到量子系统:SPAD技术的前沿进展与量子通信应用

摘要 单光子雪崩二极管(SPAD)凭借单光子级灵敏度与皮秒级时间分辨率,已成为量子通信、时间相关单光子计数等前沿领域的核心探测器。本文基于Photonics期刊近期发表的综述文章《Recent Developments in Single-Photon Avalanche Diode (SPAD) Technologies: From Device Eng…

作者头像 李华
网站建设 2026/9/27 2:42:25

RK3576 I3C实战:从I2C迁移到I3C的DTS配置与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华