Linux工具解压任何文件压缩格式

Linux工具解压任何文件压缩格式,linux,ubuntu,Linux,Ubuntu,给定一个名为“foo”且没有任何格式的文件 是否有linux命令工具能够根据文件格式对其进行检测和解压缩 我知道我可以使用“file foo”并相应地解压缩它。然而,我想要并且需要一个能够检测和解压缩任何格式的工具,压缩通过尽可能多地删除冗余信息来工作,从而最大化压缩输出的熵。换句话说,在一般情况下,压缩信息与随机噪声无法区分,因此彼此之间也无法区分 直截了当地说:所有压缩文件看起来都是一样的,除非您有额外的带外信息,否则不可能在压缩后找出它们是用什么压缩的。某些压缩格式指定了一种容器格式(例如

给定一个名为“foo”且没有任何格式的文件

是否有linux命令工具能够根据文件格式对其进行检测和解压缩


我知道我可以使用“file foo”并相应地解压缩它。然而,我想要并且需要一个能够检测和解压缩任何格式的工具,压缩通过尽可能多地删除冗余信息来工作,从而最大化压缩输出的熵。换句话说,在一般情况下,压缩信息与随机噪声无法区分,因此彼此之间也无法区分

直截了当地说:所有压缩文件看起来都是一样的,除非您有额外的带外信息,否则不可能在压缩后找出它们是用什么压缩的。某些压缩格式指定了一种容器格式(例如
.zip
文件或
.gz
文件),其标题告诉您使用了哪种压缩算法来压缩文件,并且在文件开头指定了几个魔术字节,告诉您使用了哪种容器格式

但是,并不是所有的压缩文件都存储在这样的容器中,也不是所有的容器都有魔法字节,也不是所有的容器都有一个头告诉你压缩算法,最后但并非最不重要,一个压缩算法的输出可能会意外地以指定不同压缩算法的特定容器格式的魔法字节开始


因此,简言之,不,仅从压缩输出确定压缩算法是不可能的。您需要有关压缩算法的带外信息。

压缩通过尽可能多地删除冗余信息来工作,从而最大化压缩输出的熵。换句话说,在一般情况下,压缩信息与随机噪声无法区分,因此彼此之间也无法区分

直截了当地说:所有压缩文件看起来都是一样的,除非您有额外的带外信息,否则不可能在压缩后找出它们是用什么压缩的。某些压缩格式指定了一种容器格式(例如
.zip
文件或
.gz
文件),其标题告诉您使用了哪种压缩算法来压缩文件,并且在文件开头指定了几个魔术字节,告诉您使用了哪种容器格式

但是,并不是所有的压缩文件都存储在这样的容器中,也不是所有的容器都有魔法字节,也不是所有的容器都有一个头告诉你压缩算法,最后但并非最不重要,一个压缩算法的输出可能会意外地以指定不同压缩算法的特定容器格式的魔法字节开始


因此,简言之,不,仅从压缩输出确定压缩算法是不可能的。您需要有关压缩算法的带外信息。

没有一种工具可以解压缩任何格式。如上所述,您基本上是在要求使用魔法。也就是说,有一些包装器可以将文件标识为属于显式注册的有限类型之一,并调用相应的解压缩工具。有一些工具可以完全满足您的需要。没有任何工具可以解压缩任何格式。如前所述,您基本上是在寻求魔力。也就是说,有一些包装器可以将文件标识为属于显式注册的有限类型之一,并调用相应的解压缩工具。有一些包装器正是您想要的