如何检测文件上使用的压缩类型?(假设未指定 .zip、.gz、.xz 或任何其他扩展名)。
此信息是否存储在该文件的标题中?
您可以通过查看前几个字节来确定它可能是其中一种格式。然后,您应该测试它是否真的是其中之一,使用来自该格式的关联实用程序的完整性检查,或者通过实际进行解压缩。
您可以在描述中找到标题格式:
其他:
0xFD2FB528
开始,可跳过帧以0x184D2A5?
(问号是从 0 到 F 的任何值)开始,字典以0xEC30A437
.file
If you're on a Linux box just use the 'file' command.
http://en.wikipedia.org/wiki/File_(command)
$ mv foo.zip dink
$ file dink
dink: gzip compressed data, from Unix, last modified: Sat Aug 6 08:08:57 2011,
max compression
$
As an alternative to inspecting the file header by hand, you could use some utility like TrID. The link points to the cross-platform command line version; for Windows there's a GUI, too.
如果您想确定用于压缩 linux 内核的算法,有一个脚本,请参阅此问题和答案:https ://unix.stackexchange.com/a/553192/264065