功能简介:
用于查询文件类型。平时我们判定一个文件的类型通常是通过该文件的扩展名,而file命令是通过详细阅读文件内容,找到特征量来判定文件类型。
应用实例:
file命令判定文件类型的顺序:
- 查询Device, Directory, Symbolic等特殊文件
- 查询压缩文件
- 查询tar文件
- 基于Magic数据库文件的查询
- 查询ASCII,UNICODE等类型的文本文件
- 如果以上都不符合,则文件为二进制文件
原理:
file命令通过读取保存着各种文件特性的数据库信息和被判定文件进行匹配,数据库文件保存在/etc/magic、/usr/share/misc/file/magic或其他位置。
0 string \177ELF ELF
>4 byte 0 invalid class
>4 byte 1 32bit
>5 byte 1 LSB
>>16 leshort 2 executable
|
magic 文件由4部分组成
- 偏移量
- 数据类型
- 值
- 输出字符串
magic文件的更多格式信息可以通过man magic 来查看。