确定文件类型。
file [ -m MagicFile] [ -d ] [ -h ] [ -i ] [ -M File ] [ -f FileList] [File...]
file 命令读取用 File 参数或者 FileList 变量指定的文件,在每个文件上执行一系列测试,然后将它们按照类型分类。然后此命令将文件类型写入标准输出。文件可以是常规文件、目录、FIFO(指定的管道)、块特殊文件、字符特别文件、符号链接或者套接字类型。
如果文件是 ASCII 码的格式,则 file 命令将检查前 1024 个字节然后确定文件类型。如果文件不是 ASCII 格式,则 file 命令将尝试区分二进制数据文件和包含扩展字符的文本文件。
如果 File 参数指定了可执行程序或者对象模块文件且版本号大于 0则 file 命令将显示版本戳记。ld 命令说明了 a.out 文件的使用。
file 命令使用 /etc/magic 来标识包含某种 magic 数字的文件;即,任何包含可以表示类型的数字或字符串常量的文件。
如果文件不存在,无法读取或者文件状态无法确定,那么文件将不看作会影响退出状态的错误。输出表明文件已被处理,但是类型仍无法确定。
当使用了 -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 File | 指定包含应应用于文件以对其分类的测试的文件的名称。不应应用缺省系统测试。 |
此命令返回下列出口值:
0 | 成功结束。 |
>0 | 发生错误。 |
file myfile
这将显示文件 myfile的类型(例如目录,数据,ASCII 文本,C 程序源,压缩文档)。
/usr/bin/file | 包含 file 命令。 |
/etc/magic | 包含文件类型数据库。 |
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『文件概述』描述了文件、文件类型,以及如何命名文件。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『输入和输出重定向概述』描述了操作系统如何处理输入输出。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『文件和目录访问方式』介绍了文件所有权以及访问文件和目录的权限。