file [options] file

识别文件类型,不依赖于后缀名。
该命令将按序运行三套识别模式,直至返回得到测试结果。
预设模式下,只分析普通文件的具体类型,不会尝试读取特殊文件的内容,除非指定-s参数。

识别模式

  1. 文件系统测试:检验文件是否为空文件,或是否为某一类特殊系统文件,如socket、软链接、FIFO等。
  2. magic file 测试:检验文件是否匹配某一类特定格式(通常为文件头附近的特殊字节,称为 magic number),识别为某一类已知的二进制文件,如可执行文件,识别规则在/usr/share/file/magic.mgc等目录中。
  3. 语言测试:检验文件是否为文本文件,识别其内容字符集及文本类型属性(如使用非标准的行结束符,或包含转义短句等),确定文件使用的字符集后,进一步推断可能对应的编程语言。该测试也包括检查文件是否为 tar 文档等杂项类型。如无法判断其使用的字符集,则类型结果推定为data

返回结果类型

  1. text:表示文件全由可打印字符和部分控制字符组成,并且很可能可通过 ASCII 终端访问阅读
  2. executable:可用于UNIX内核等直接运行的编译程序
  3. data:其他不属于上述两类的二进制文件(上述三组测试均无法确定的文件类型)

options

-b 摘要模式,不显示文件名
-F separator 指定文件名:类型结果分隔符,默认为冒号:
-f namefile 逐行读取 namefile 文件,并逐一识别其对应的文件类型,namefile 为空文件或指定为-时,将读取标准输入。该命令会优先执行文本解析,并作为目标文件列表参数提供,因此必须作为最后一个参数进行定义
-L 跟踪符号链接,显示其指向的文件类型(默认选项)
-h 不跟踪符号链接,显示其本身类型
-i 不判断显示普通文件的子类型
-I / --mime 显示 MIME 类型格式
--mime-type 仅显示 MIME 类型中的文件类型信息(忽略编码格式等)
-k 执行完整匹配识别模式,打印所有判断结果
-p 分析时,不更新文件的 atime
-s 目标文件为块文件或字符文件时,尝试读取其内容,主要用于读取位于另一 Raw 格式磁盘、分区的数据文件类型
-z 尝试读取压缩文件

magic 测试支持

-c 打印 magic 测试的执行过程输出,常用于调试新编辑的 magic 文件
-C 以file -C [-m magic_list]方式执行,对目标 magic 文件编译出 magic.mgc 文件
-m magic_list 使用指定的多个 magic 文件或其目录,使用冒号:分割(优先调用已编译版本)
-d 使用系统定义的 magic 文件测试
-M magic_list 与-m相同,但不使用系统定义的 magic 文件测试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,970评论 9 468
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,209评论 2 33
  • 婷叔阅读 1,319评论 0 0
  • 最近看了王森的《就想开间小小咖啡馆》,感触颇深,或许是某种想法和作者的思想产生了共鸣的缘故吧。 书里写了他创业的经...
    Nolanyoung阅读 3,427评论 0 1