专栏首页C/C++基础Linux命令(47)——file命令

Linux命令(47)——file命令

1.命令简介

file命令用来识别文件类型,对文件的检查分为文件系统、魔法幻数检查和语言检查三个过程,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。

2.命令格式

file [-bchiklLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]

3.选项说明

-b,--brief:简约模式,不显示文件名称;
-C,--compile:生成magic.mgc文件。配合选项-m使用
-c, --checking-printout:对魔法文件的解析结果打印输出
-e, --exclude [testname]:排除对指定类型文件的检查,testname可取值有apptype、ascii、encoding、tokens、cdf、compress、elf、soft、tar
-F, --separator [separator]:使用指定分隔符替换输出文件名后的默认的":"分隔符
-f, --files-from [namefile]:从文件namefile中读取待检测的文件,每行一个
-i, --mime:输出mime类型的字符串而不是可读字符串,比如输出"text/plain; charset=us-ascii"而不是"ASCII text"
--mime-type, --mime-encoding:像-i,但是只打印指定元素;
-k, --keep-going:不在首次匹配时停止,继续检查
-l, --list:Print information about the strength of each magic pattern
-L, --dereference:查看对应软链接对应文件的文件类型
-m, --magic-file [magicfiles]:指定magic file。magic file指的是那些具有特殊内容的文件,比如C文件,它会有#include字样;tar文件的前几个字节会有特殊的规则。而检验magic file规则就是根据这些特殊的格式去判断一个文件的类型。而这些规则是保存在$HOME/.magic.mgc
-N, --no-pad:Don't pad filenames so that they align in the output
-n, --no-buffer:强制刷新标准输出stdout。这个选项只在检查多个文件时有效。在通过管道获取文件类型时也可以使用该选项
-p, --preserve-date:保留待检测文件的access time,即使file命令不更改待检测文件的access time
-r, --raw:不将不可打印字符转换为\ooo的八进制形式,正常情况下,file会做转换
-s, --special-files:正常情况下,file命令只支持普通文件的检测,就像stat(2)一样。使用该选项可以让file命令支持特殊文件,比如原始磁盘分区等
-v, --version:显示版本信息
-z, --uncompress:尝试去解读压缩文件的内容
-0, --print0:在文件名后输出空字符'\0'
--help:显示帮助信息

4.常用示例

(1)查看文件类型。

[root@TENCENT64 ~]# file Changelog 
Changelog: ASCII text

(2)不输出文件名称,只显示文件格式以及编码。

[root@TENCENT64 ~]# file -b Changelog 
ASCII text

(3)输出mime类型的字符串。

[root@TENCENT64 ~]# file -i Changelog 
Changelog: text/plain; charset=us-ascii

(4)查看软链接对应文件的文件类型。

[root@TENCENT64 ~]# ll Changelog*
-rw-r--r-- 1 root root 1598 Nov  6 22:39 Changelog
lrwxrwxrwx 1 root root    9 Nov  6 23:07 Changelog.ln -> Changelog

#产看软链接本身类型
[root@TENCENT64 ~]# file Changelog.ln
Changelog.ln: symbolic link to `Changelog'

#查看软链接对应文件的文件类型
[root@TENCENT64 ~]# file -L Changelog.ln
Changelog.ln: ASCII text

参考文献

[1]man file [2]linux shell file与magic file文件 [3]Linux命令详解-file

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Shell反引号、$()和${}的区别

    反引号和$()的作用相同,用于命令替换(command substitution),即完成引用的命令的执行,将其结果替换出来,与变量替换差不多。比如:

    Dabelv
  • Linux命令(66)——as命令

    as命令是二进制工具集GNU Binutils的一员,是GNU推出的一款汇编语言编译器集,用于将汇编代码编译为二进制代码,它支持多种不同类型的处理器。

    Dabelv
  • Linux命令(67)——time 命令

    版权声明:感谢您对博文的关注!校招与社招,有需要内推腾讯的可以QQ(1589276509)or 微信(loui...

    Dabelv
  • 网络号和主机号的计算

    因为想要学习网络号和主机号的计算需要先知道其IP地址和子网掩码,所以这篇博客的学习是以上一篇IP地址分类及私网IP为基础的。 具体为: 网络号=IP地址&子网掩...

    用户1215536
  • 如何在 Python 中注释

    在写 Python 代码的时候,一个很好的编码实践就是使得你的代码简洁,易懂。组织代码,设置变量,以及给函数有意义的名字,都是几个不错的方法。

    雪梦科技
  • 面试常问的PECS原则,到底是什么鬼?

    温馨提示:泛型相关。以下内容请在安静的场所、充足的时间下查看,因为它非常的绕,容易把人绕晕。

    xjjdog
  • 写数据分析报告,建议部分憋到脸红,咋整?

    很多做数据的同学都被领导、同事这么吆喝过。然而,什么是策略性思考???往往一听到这种词,就有同学急不可耐的掏出《麦肯锡方法》之类的镇山法宝,或者在网上搜《底层思...

    接地气的陈老师
  • Inspect file content when uploading as attachment

    when we uploading text file as attachment, is it possible for us to view uploadi...

    Jerry Wang
  • MiniProfiler监控Asp.Net MVC5和EF性能

    在web项目打开nuget包管理器搜索 MiniProfiler.Mvc5和MiniProfiler.EF6安装。

    用户6362579
  • 数据分析秘籍在这里:Kaggle 六大比赛最全面解析(上)

    AI 研习社按,Kaggle 上有各式各样的数据挖掘类比赛,很多参赛者也乐于分享自己的经验,从他人的经验中进行总结归纳,对自己的实践也非常重要。

    AI研习社

扫码关注云+社区

领取腾讯云代金券