如何区分 doc、ppt、xls 文件,而不看文件扩展名

如何区分 doc、ppt、xls 文件,而不看文件扩展名

所以我想知道在 Linux 中如何区分 ppt、xls 和 doc 文件,无论扩展名是什么。我尝试了“文件”,但从外观上看,所有 MSOffice 文件都归类为同一文件类型。同样,我在处理 docx、xlsx 和 pptx 文件时也遇到了麻烦,因为它们本质上都是包含一堆 xml 的 zip 文件。

我也尝试使用 Python 脚本导入魔法模块,但是没有成功。

我正在尝试识别实际文件以进行沙盒分析。为此,我需要找到实际文件类型,以便在沙盒虚拟机中运行它(Windows 虚拟机通过扩展运行所有内容)。

假设我的示例文件被标记为 try.exe,但实际上它只是一个 doc 文件。我的脚本会将其重命名为 try.exe.doc,这对于 doc 文件来说没问题。但由于 linux 将所有 MSOffice 文件识别为简单的 DOC 文件,因此无法识别 ppt 或 xls 文件。因此,沙盒无法正确分析示例。

答案1

使用filewith-i来获取 mime 类型:

file -i <filename>

答案2

您可以使用mimetype命令。例如:

mimetype example.ppt
example.ppt: application/vnd.ms-powerpoint

mimetype example.doc 
example.doc: application/vnd.ms-word

然而,与此不同的是,file -iMIME 类型的确定是基于从共享的 MIME 信息数据库中查找文件扩展名(.ppt.doc),而更改它们也会更改 MIME 类型。

扩展名改变后,了解文件的唯一方法就是查看其文件签名或幻数,相同适用于所有 Microsoft Office 文档(D0 CF 11 E0DOCFILE0)。因此,任何 MS-Office 文件都将被检测为相同的 MIME 类型。

相关内容