1
Linux服务器配置与应用
1.5.1.10 2.1.10 file
2.1.10 file

file:输出的类型一般会包含以下词中的一个:text (文件中仅有 ASCII 字符,可以用 ASCII 终端读此文件,以保证内容的可靠性), executable (文件中保存的是程序编译后的结果,一些UNIX内核或其他内核能理解这类文件), data 表示所有其他类型文件(data 一般为二进制文件或者不可打印的文件)。但是有的常用的文件格式(如core文件、tar包),虽然也包含二进制数据,却不属于这一类。如果要修改/usr/share/magic 或者程序本身,preservethesekeywords。当文件为"text"类型时,认为此文件为可读文件,不要像在Berkeley环境中那样做,需把"shellco mmandstext "改为 "shellscript "。

文件系统检查是建立在对 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程序。语言检查不如前两组检查可靠,所以放在最后执行,它也用来检查一些混合文件(例如 tar(1)存档文件)并确定文件是"ascii text "类型还是"data "类型。

操作方法:file[-bcnsvzL][ -f 命名文件][-m 幻数文件]file ...

选项如下: