Binary 如何检测文件上使用的压缩类型?(如果未指定文件扩展名)
如何检测文件上使用的压缩类型?(假设未指定.zip、.gz、.xz或任何其他扩展名)Binary 如何检测文件上使用的压缩类型?(如果未指定文件扩展名),binary,compression,Binary,Compression,如何检测文件上使用的压缩类型?(假设未指定.zip、.gz、.xz或任何其他扩展名) 该信息是否存储在该文件头的某个位置?作为手动检查文件头的替代方法,您可以使用诸如TrID之类的实用程序。链接指向跨平台命令行版本;对于Windows,也有一个GUI。如果您在Linux机器上,只需使用“file”命令即可 通过查看前几个字节,可以确定它可能是这些格式之一。然后,您应该使用该格式的关联实用程序的完整性检查,或者通过实际进行解压缩来测试它是否真的是其中之一 您可以在说明中找到标题格式: ,以0x
该信息是否存储在该文件头的某个位置?作为手动检查文件头的替代方法,您可以使用诸如TrID之类的实用程序。链接指向跨平台命令行版本;对于Windows,也有一个GUI。如果您在Linux机器上,只需使用“file”命令即可
通过查看前几个字节,可以确定它可能是这些格式之一。然后,您应该使用该格式的关联实用程序的完整性检查,或者通过实际进行解压缩来测试它是否真的是其中之一 您可以在说明中找到标题格式:
- ,以0x50、0x4b、0x03、0x04开头(除非为空,否则最后两个为0x05、0x06或0x06、0x06)
- ,以0x1f、0x8b、0x08开头
- ,以0xfd、0x37、0x7a、0x58、0x5a、0x00开头
- ,以两个字节(以位为单位)0AA1000 bbbccccc开始,其中ccccc的选择使得被视为int16乘以256的第一个字节加上被视为int16的第二个字节是31的倍数。e、 g:01111000(位)=120(int16),10011100(位)=156(int16),120*256+156=30876,是31的倍数
- 压缩(.Z)从0x1f、0x9d开始
- bzip2(.bz2)以0x42、0x5a、0x68开头
xxd文件
@MarkAdler没问题,谢谢您的回复,我很感激!$od-x t1文件名|head@gstein也许你的意思是od-tx1
?
$ mv foo.zip dink
$ file dink
dink: gzip compressed data, from Unix, last modified: Sat Aug 6 08:08:57 2011,
max compression
$