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 确认再动手。