首页/系统/信创系统运维速查/file 识别文件类型与架构
命令与包管理65 条

file 识别文件类型与架构

拿到一个不明文件先 file:识别文本/脚本/ELF/压缩包,还能读出二进制目标架构(x86-64、ARM aarch64),检查跨平台拷贝的关键一步。

信创系统运维速查系统更新于 2026-10-13

file 是做什么的

file 通过读取文件头部的魔数(magic)以及内置启发式规则判断文件类型,不依赖扩展名,因此对改过名的文件同样有效。规则库在 Linux 上通常位于 /usr/share/misc/magic.mgc,能识别文本、脚本、ELF 可执行文件、各类压缩包与文档格式。它还能读出 ELF 二进制的目标架构(x86-64、ARM aarch64、LoongArch 等)与链接方式,是跨平台交付核对产物架构的第一道检查。

基本信息

适用平台Linux 全发行版(麒麟、UOS、openEuler 均自带)
语法file [选项] 文件或目录
常用选项-i 输出 MIME 类型;-L 跟随符号链接;-b 只输出结论;-k 不因首个匹配停止
权限要求能读取目标文件即可,普通用户可执行
依赖magic 规则库,缺失或过期时输出会退化成 data

典型使用场景

  • 拿到来源不明的文件时先确认类型,再决定用什么工具打开,避免直接用错程序
  • 脚本跨系统传递后排错:输出里的 CRLF 提示能直接解释 bad interpreter 一类报错
  • 跨架构交付核对:把编译产物拷到鲲鹏、飞腾、龙芯机器前先比对架构,避免现场才报格式错误
  • 区分压缩包与容器格式:gzip、xz、zip、tar 的处理命令不同,先看清楚再动手
  • 判断可执行文件是动态链接还是静态链接,评估目标机的依赖库与 libc 版本兼容性
  • 配合 find 与管道做批量类型统计,快速发现构建产物里混入的异常文件

典型用法

典型用法
file /usr/bin/ls                  # 查看系统二进制的类型与架构
file -i ./upload.bin               # 用 MIME 类型做脚本分支判断
file -b ./notes.txt                # 只输出结论,便于切分字段
file -L /usr/bin/python3           # 跟随符号链接看真实目标类型
file ./app-binary | grep -qE 'x86-64|aarch64'   # 脚本里校验产物架构
file -k ./image.bin                # 不因首个匹配停止,列出更多候选
file ./scripts/deploy.sh           # 顺带检查是否带 CRLF 换行

常见输出判读

输出片段含义判读要点
ELF 64-bit LSB executable, x86-64x86-64 架构可执行文件拷到 ARM 机器上无法直接运行
ELF 64-bit LSB executable, ARM aarch64ARM 64 位可执行文件适用于鲲鹏、飞腾整机
ASCII text executable纯文本且带可执行位跑不起来多为解释器或权限问题
ASCII text, with CRLF line terminators带 Windows 换行符shell 脚本会因回车符报错,需转换
ELF ... dynamically linked动态链接需确认目标机依赖库版本
symbolic link to ...符号链接需加 -L 才能看到目标类型
file 只读文件头部特征、不执行文件,用它判断可疑文件比直接运行安全;但结论属于启发式判断,遇到自解压程序或加密容器可能只报 data,此时可加 -k 查看更多候选类型。
需要更细的架构与依赖信息时配合 readelf -h 看 ELF 头、ldd 看动态依赖;若 ldd 提示 not a dynamic executable,则说明该二进制是静态链接的。

易错点

  • 把类型判断当成可运行保证:架构匹配后仍可能因缺可执行位、缺依赖库或解释器路径不对而失败,需逐项确认
  • 扩展名与内容不一致时以 file 结论为准:从 Windows 拷来的文档可能实为 zip 容器,硬按扩展名处理会失败
  • 脚本显示为 ASCII text 却执行不了,多半是缺可执行位或缺 shebang,先 chmod +x 并检查首行解释器
  • CRLF 换行导致的报错常表现为 command not found 或 bad interpreter,容易被误判成路径问题,先用 file 确认换行符再处理

数据来源与参考

  • file 手册(man 1 file)
  • ELF 格式基础
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌