027 file命令
命令说明
file 用于探测文件的真实类型(通过读取文件头 magic number),而不是依赖扩展名。可识别文本、二进制、图片、压缩包、脚本等。
语法
file [选项]... 文件...
常用参数
| 参数 | 说明 |
|---|---|
| -b | 不打印文件名,只输出类型(brief) |
| -i | 以 MIME 类型输出,如 text/plain; charset=utf-8 |
| -z | 查看压缩文件内部的真实类型 |
| -L | 跟踪符号链接查看目标类型 |
| -f 列表 | 对文件中列出的路径逐个检测 |
| -m 规则 | 使用自定义 magic 规则文件 |
使用示例
$ file app.log
查看文件类型
$ file image.png
识别为 PNG image data...
$ file -i script.sh
输出 MIME 类型 text/x-shellscript
$ file -z backup.tar.gz
查看压缩包内部类型
$ file -b /etc/passwd
只输出类型不带文件名
$ file -L link
查看符号链接指向的真实文件类型
$ find . -type f | xargs file | grep ASCII
批量筛选文本文件
实用技巧
- 扩展名不可信:一个 .jpg 可能是 .png 或可执行脚本,用 file 确认真实类型。
- 排查“上传文件伪装”时常用:file upload.bin 判断是否为脚本或 ELF。
- -i 输出 MIME 类型适合脚本判断;-b 适合管道处理。
- 对目录 file 会输出 directory;对设备/管道会输出对应类型。