大多数人看扩展文件然后根据扩展名猜文件的类型。例如,当您看到扩展名为gif、jpg、bmp或png的文件时,您就会想到图像文件,当您看到扩展名为zip的文件时,就假定该文件已经使用拉链压缩实用程序。
文件可以使用一个扩展,但是完全不同的东西。Linux不使用文件扩展;相反,文件的类型是文件名的一部分。要找出真实的文件类型,请使用文件命令。
“文件”命令如何运作
文件命令对文件运行三组测试:
- 文件系统测试
- 魔术测试
- 语言测试
返回有效响应的第一组测试提示要打印的文件类型。
文件系统测试检查stat系统调用的返回值。该程序检查文件是否为空,是否为特殊文件。如果在系统头文件中找到该文件类型,则将其作为有效的文件类型返回。
魔术测试检查文件的内容,特别是在开始时帮助确定文件类型的几个字节。不同的文件用于帮助匹配文件与其文件类型,这些文件存储在:
- /etc/magic
- /usr/share/misc/magic.mgc.
- / usr / share / misc / magic
通过将文件放在名为您的主文件夹中来覆盖这些文件$ HOME / .magic.mgc或$ HOME / .magic。
最终测试是语言测试。检查文件以查看它是否是文本文件。通过测试文件的前几个字节,测试指导文件是否是ASCII,UTF-8,UTF-16,或将文件标识为文本文件的其他格式。推导出字符集时,对不同语言进行测试。
如何使用“file”命令
这文件命令采取以下形式:
文件文件名
例如,要检查文件标题的类型touch.svg.,执行以下命令:
文件touch.svg
输出是这样的:
- Touch.svg:SVG可升级矢量图形图像
不同的文件类型产生不同的结果,例如:
- ODS文件类型:OpenDocument电子表格
- PDF文件类型: PDF文件,版本1.4
- CSV文件类型:ASCII文本,具有非常长的线路,带CRLF线路指示器
处理多个文件
默认情况下,file命令只适用于单个文件。但是,您可以指定一个文件名,其中包含要由文件命令。
例如,打开一个名为testfiles.使用纳米编辑器并将这些行添加到其中:
- / etc / passwd
- /etc/pam.conf.
- / etc / opt
保存文件,并执行如下文件命令:
文件-f testfiles.
输出将是这样的:
- / etc / passwd:ascii文本
- /etc/pam.conf:ascii文本
- /etc/opt:目录
另一种方法是运行文件命令一次,但指定几个目标。例如:
文件/ etc / passwd /etc/pam.conf / etc / opt
输出将是这样的:
- / etc / passwd:ascii文本
- /etc/pam.conf:ascii文本
- /etc/opt:目录
标准通配符也工作。例如,要在当前工作目录中测试所有文件,请使用:
文件 *
要测试以字母D开头的目录(区分大小写)试用:
文件D *
例如,结果可以是桌面、文档和下载。
压缩文件
当你运行时文件对压缩文件的命令您看到了这样的输出:
- file.zip:zip存档数据,至少v2.0才能提取
虽然此结果告诉您文件是存档文件,但您不知道文件的内容。查看zip文件中以查看压缩文件中文件的文件类型。以下命令将文件命令与zip文件中的文件运行:
file -z filename.
输出现在显示存档中文件的文件类型。