linux常用命令-file

描述

File 命令试图检查每个参数以判定文件的类型.检查共有三组,按如下顺序进行:文件系统检查,幻数检查,以及语言检查. 文件系统 检查成功则输出文件类型。

输出的类型一般会包含以下的词中的一个: text (文件中仅有 ASCII 字符,可以用 ASCII 终端读此文件,以保证内容的可靠性), exe‐cutable (文件中保存的是程序编译后的结果,一些UNIX 内核或其它内核能理解这类文件), 或者 data 表示所有其它类型文件(data一般为二进制文件或者不可打印的).但是有的常用的文件格式(如core文件、tar包),虽然也包含二进制数据,却不属于这一类
如果要修改/usr/share/magic或者程序本身,preserve these keywords .当文件为text'' 类型时,认为此文件为可读文件.不要象在Berkeley环境中那样做 - 要把shell commands text’‘改为``shell script’’.

文件系统检查是建立在对stat(2)系统调用结果的分析上的.程序会分析文件是否为空,或者是否是某种特殊文件.对于所有可在现有系统上使用的文件类型 (比如套接口文件,动态链接文件,命名管道文件(FIFOs) 等), 只要它在系统头文件 sys/stat.h中已经定义过,就可以被检查到.

幻数检查用来检查文件中是否有特殊的固定格式的数据.规范的例子如二进制可执行文件(编译后的程序)a.out ,该文件格式在标准include目录下的a.out.h文件中定义,也可能在exec.h中定义.这些文件在文件开始部分附近的一个特殊位置保存有一个’幻数’,通过幻数告诉UNIX 操作系统此文件是二进制可执行文件, 和其中包含的其它类型. 幻数的概念已经扩展到数据文件.任何在文件固定位置有与文件类型 相关的不变标识符的文件都可以这样表示.这些文件中的信息可以从幻数文件 /usr/share/magic 中读取.

如果文件为 ASCII 文件, file 会试图检查它的语言. 语言检查在文件开始的几个块中(任意位置)查找是否有特殊字符串(参看 names.h)例如,关键字.br指出此文件很可能是 troff(1)输入文件,而关键字struct指出此文件是C程序. 语言检查不如前两组检查可靠,所以放在最后执行.它也用来检查一些混合文件(例如ar(1)存档文件)并确定文件是ascii text'类型还是data’类型.

常用选项

-b,不输出文件名

[root@mgr1 ~]# file -b f1.sh 
ASCII text

-c,检查时打印输出幻数文件的解析结果.常与 -m 一起使用,用来在安装幻数文件之前调试它.

[root@mgr1 ~]# file -c -m f1.sh 
unknown, 0: Warning: using regular magic file `f1.sh'
cont	offset	type	opcode	mask	value	desc
f1.sh, 1: Warning: offset `hostname' invalid
f1.sh, 1: Warning: type `hostname' invalid
file: could not find any magic files!

-n,每检查完一个文件就强制刷新标准输出. 仅在检查一组文件时才有效. 一般在将文件类型输出到管道时才采用此选项

[root@mgr1 ~]# file -n tracker.conf f1.sh 
tracker.conf: ASCII text
f1.sh:        ASCII text

-z,试图查看压缩文件内部信息.

[root@mgr1 ~]# file -z openssh-8.1p1.tar.gz 
openssh-8.1p1.tar.gz: POSIX tar archive (gzip compressed data, from Unix)

若要了解详细信息,请通过查看man文档了解更过命令信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值