如何使用Linux确定文件的文件类型

使用“文件”命令查找任何文件或文件组的文件类型

大多数人看扩展文件然后根据扩展名猜文件的类型。例如,当您看到扩展名为gif、jpg、bmp或png的文件时,您就会想到图像文件,当您看到扩展名为zip的文件时,就假定该文件已经使用拉链压缩实用程序

文件可以使用一个扩展,但是完全不同的东西。Linux不使用文件扩展;相反,文件的类型是文件名的一部分。要找出真实的文件类型,请使用文件命令。

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.

输出现在显示存档中文件的文件类型。

这个页面有用吗?