如何从 linux 服务器上的大型 (30Gb+) zip 文件中提取文件

how to extract files from a large (30Gb+) zip file on linux server

1) 从大型 zip 文件中提取

我想从 linux 服务器上的大型 zip 文件 (30Gb+) 中提取文件。有足够的可用磁盘space。

我试过了jar xf dataset.zip。但是,出现错误push button is full,无法提取所有文件。

我试过 unzip,但 zipfile 已损坏。

Archive:  dataset.zip 
warning [dataset.zip]:  35141564204 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [dataset.zip]:  start of central directory not found;
zipfile corrupt.
 (please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)

我试过 zip -FF dataset.zip --out data.zip,但出现条目太大的错误:

zip error: Entry too big to split, read, or write (Poor compression resulted in unexpectedly large entry - try -fz)

有什么方法可以有效地从非常大的 zip 文件中提取文件?

2) 从大型 zip 文件中提取某些文件

如果我只想从这个大 zip 文件中提取某些文件,是否可以只提取这些文件?例如,data1.txt 来自 dataset.zip?似乎我不能使用任何 zipunzip 命令(总是有 zipfile 损坏的问题)。

谢谢!

您可以从 zip 中提取特定文件

$ unzip -j "zipedfile.zip" "file.txt"

file.txt 是您要从 zipedfile.zip

中提取的文件

尝试提取目录以保留控制权并了解您在何处停止。 例如: tar tv --wildcards -f siteRF.tar './Movies/*'

我已经解决了这个问题。结果证明是 zip 损坏问题。我首先修复了文件:

zip -FF filename1.zip --out filename2.zip -fz

然后解压固定的 zip 文件:

unzip filename2.zip

并已成功提取所有文件!

非常感谢Fattaneh Talebi的帮助!

我遇到了类似的问题,通过 unar 命令解决了。

unar file.zip

我尝试了上述所有步骤来解压文件,但惨遭失败。

我最后的办法是将我的 zip 文件 (11.1GB) 复制到硬盘中,然后使用 7 zip on Windows 8 OS.

将其解压缩

工作得很好 :D

我也用类似 Irene W 的方法解决了它。这是一个损坏的 zip。我首先修复了文件:

zip -FF original_corrupted.zip --out fixed_file.zip -fz

然后解压固定的zip文件:

unzip fixed_file.zip