file 命令
用途
确定文件类型。
语法
描述
file 命令读取用 File 参数或者 FileList 变量指定的文件,在每个文件上执行一系列测试,然后将它们按照类型分类。 然后命令将文件类型写到标准输出。 文件可以是常规文件、目录、FIFO(指定的管道)、块特殊文件、字符特别文件、符号链接或者套接字类型。
- 对于长度为零的常规文件,将识别为空文件。
- 对于符号链接文件,缺省情况下此链接后跟符号链接引用的文件。
如果文件是 ASCII 码的格式,那么 file 命令将检查前 1024 个字节然后确定文件类型。 如果文件不是 ASCII 格式,那么 file 命令将尝试区分二进制数据文件和包含扩展字符的文本文件。
如果 File 参数指定可执行文件或对象模块文件,且版本号大于 0,那么 file 命令将显示版本戳记。 ld 命令说明了 a.out 文件的使用。
如果语言环境是 C 编程语言,那么 file 命令会使用 /etc/magic 文件来标识包含某种幻数的文件;即,任何包含表示类型的数字或字符串常量的文件。
但是,如果语言环境不是 C 编程语言,那么 文件 命令将使用 /usr/lib/nls/msg/<language_env。>/magic.cat 文件来识别具有幻数的文件。
如果文件不存在,无法读取或者文件状态无法确定,那么文件将不看作会影响退出状态的错误。 输出指示文件已被处理,但是类型仍无法确定。
当使用了 -i 标志时,应使用以下格式标识每个 file 指定的操作数:
"%s: %s\n", file, type除非在 POSIX 语言环境,否则不指定 type 的值,如果 file 指定为下表中列示的类型之一,type
应包含(但不限于)对应字符串。 在字符串中显示的每个空格应是一个空格。| 如果 file 是: | type 应包含字符串: |
|---|---|
| 目录 | 目录 |
| FIFO | fifo |
| 套接字 | 套接字 |
| 块特殊文件 | 块特殊文件 |
| 字符特别文件 | 字符特别文件 |
| 可执行文件(二进制) | 可执行文件 |
| 空常规文件 | 空 |
| 符号链接 | 符号链接到 |
| ar 归档库 | 归档 |
| 扩展的 cpio 格式 | cpio 压缩文档 |
| 扩展的 tar 格式 | tar 压缩文档 |
| Shell 脚本 | 命令文本 |
| C 语言源 | C 程序文本 |
| FORTRAN 源 | fortran 程序文本 |
如果 file 标识为符号链接,那么应使用以下备用输出格式:
"%s: %s %s\n", file, type, contents of link"如果 file 操作数指定的文件不存在或无法读取,那么应将字符串 cannot open 包含为 type 字段的一部分,但这不应视为影响退出状态的错误。 如果 file 操作数指定的文件的类型不能确定,那么字符串 data 应包含为 type 字段的一部分,但这不应当作影响退出状态的错误。标志
| 项 | 描述 |
|---|---|
| -c | 检查指定的 magic 文件(缺省情况下,/etc/magic 文件)有无格式错误。 此验证一般不进行。 在此标志下文件输入不执行。 |
| -d | 将任何缺省系统测试应用到文件。 |
| -f FileList | 读取指定的文件列表。 文件必需在每行列示一个文件,不包含开开头和拖尾空格。 |
| -h | 当遇到符号链接时,将文件标识为符号链接。 如果未指定 -h 标志且 file 是指向不存在文件的符号链接, file 应将文件标识为符号链接,就好像指定了 -h 标志。 |
| -i | 如果文件是常规文件,那么不会尝试进一步对该文件的类型进行分类,而是按照 描述中的指定来标识该文件。 |
| -m MagicFile | 指定 magic 文件的文件名(缺省情况下, /etc/magic)。 |
| -M MagicFile | 指定包含应应用于文件以对其分类的测试的文件的名称。 不应应用缺省系统测试。 |
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功完成。 |
| > 0 | 发生错误。 |
示例
- 要显示文件包含的信息类型,请输入:
这将显示文件 myfile 的类型(例如目录、数据、ASCII 文本、C 程序源和压缩文档)。file myfile - 要显示文件名列表中指定的每个文件的类型,请输入:file -f filenames这将显示在以下列表中指定的每个文件的类型:filenames列表。 每个文件必须单独出现在一行上。
注: 要从 file 命令获取定制消息,请将单独的 magic 文件与 -m 选项配合使用。 不建议编辑只读的 /etc/magic 文件。
文件
| 项 | 描述 |
|---|---|
| /usr/bin/file | 包含 file 命令。 |
| /etc/magic | 包含文件类型数据库。 |