首页 / Linux 命令行入门教程 / 20. file:识别文件类型

Linux 命令行入门教程

20. file:识别文件类型

本教程共 90 篇 · 第 20 篇

20. file:识别文件类型

Windows 靠扩展名判断文件类型。Linux 不迷信扩展名,它真的去”看”文件内容。

file 命令探测文件的真实身份。哪怕你把图片改名成 .txt,它也认得出来:

file photo.jpg
# photo.jpg: JPEG image data, JFIF, ...

试试把一个文本改名成奇怪后缀:

echo "just text" > mystery.xyz
file mystery.xyz
# mystery.xyz: ASCII text

它照样回答”这是文本”。这就是为什么 Linux 下扩展名只是个约定,不是铁律。

常见输出解读

file 可能告诉你这些类型:

  • ASCII text:纯文本文件
  • Bourne-Again shell script:bash 脚本
  • ELF 64-bit executable:编译好的程序
  • gzip compressed data:gzip 压缩包
  • directory:这是个目录

遇到来历不明的下载文件,先 file 一下最稳妥。

file /bin/ls
# /bin/ls: ELF 64-bit ... executable
Note

file 只读文件头几个字节做判断,速度很快,不会把整个文件读进来。

处理一批文件时也能用通配符(如 §12 所述):

file *.bin

小结:file 看穿真实类型,不 care 扩展名。拿到陌生文件,先 file 确认再动手。