如何解压缩包含多个文件的.gz文件

时间:2019-01-19 06:08:48

标签: java

我想通过使用 java 解压缩多个.gz文件,并且所有文件(.gz)中都包含多个文件:

我的文件结构如下:

D:\folder\file1.gz
D:\folder\file2.gz

所有gz文件都类似于:

file1.gz
abc11.txt
abc12.txt
abc13.txt
abc14.txt
file2.gz
abc21.txt
abc22.txt
abc23.txt
abc24.txt

1 个答案:

答案 0 :(得分:3)

您要问的没有任何意义。您也许实际上有一个.tar.gz或.tgz文件?

每个Gzip主页(https://www.gzip.org/):

  

gzip是单文件/流无损数据压缩实用程序,其中   生成的压缩文件通常带有后缀.gz。

Gzip文件只是字节的压缩流。就文件而言,解压缩.gz文件始终会导致一个文件。该格式没有提供将结果文件的内容分成多个文件或为这些文件分配名称的规定。

还有其他文件格式可以存储多个文件。在使用Gzip的同一圈子中,Tar是用于此目的的常用工具。 Tar文件通常具有.tar扩展名。但是创建Tar时,通常会立即用Gzip压缩它。因此,您经常在野外找到扩展名为.tar.gz的文件。这意味着将一个或多个文件收集到一个Tar文件中,然后使用Gzip压缩该文件。这种情况非常普遍,以至于单个扩展名.tgz通常用作.tar.gz的快捷方式。另外,Tar本身可以进行Gzip压缩,因此要从文件目录创建.tgz文件,可以执行以下操作:

tar -czf archive.tgz somedirectoryname

如果实际上您有一个.tar.gz或.tgz文件,则将该文件解压缩并扩展为多个文件的方法是先使用Gzip解压缩,然后使用Tar解压缩单个文件。 Tar可以自己执行Gzip解压缩,因此解压缩.tgz文件所需要做的就是:

tar -xzf archive.tgz

这将产生用于创建.tgz文件的任何文件和目录结构。

如果您确实只有一个.gz文件,那么如果您希望它自然扩展为多个文件,那么我不确定您拥有什么。 .gz文件根本无法自行保留多个文件的任何概念。我的猜测是,您拥有的是Gzip压缩的单个日志文件。