请注意,使用7z和使用ZIP格式一样开心。如果这对结果有任何影响。
#1 楼
您需要先加入他们。您可以使用常见的linux应用cat
,如下例所示:压缩文件。拥有单个文件后,可以运行test.zip.001
“如何在Linux中创建,拆分,连接和提取zip归档文件”可能会有所帮助。
评论
好的,我喜欢那...进度...但是我这里确实是Linux n00b。我假设x *是文件名? 〜/ hugefile是目录吗?代字号的目的是什么?很抱歉问我怀疑是非常基本的问题。
– Tim
2012年6月11日在2:54
分割文件时,应使用x_之类的前缀(例如x_split1,x_split2,...;如Windows后缀file.001,file.002 ...等),代字号代表您的主目录。 〜/ hugefile与/ home / tim / hugefile相同。您是否分割了文件?拆分文件的名称是什么?
–来自fromnaboo
2012年6月11日在2:59
我想我知道问题出在哪里了,Spanned存档是在Windows中创建的,使用带有ZIP扩展名的7zip,因此它将自动创建为TEST.zip.001,TEST.zip.002和TEST.zip.003分裂是非常不同的。开始看起来像将Linux扔到VMWare上并在此处创建文件可能会更容易,然后至少我只处理1个OS。可以对任何文件类型使用SPLIT命令吗?即图像,音频电影等?
– Tim
2012年6月11日在3:03
是的,split命令适用于任何文件。使用apt-get安装p7zip,在debian或yum上安装p7zip,在fedora上安装p7zip,使用以下文件加入文件:cat TEST.zip。*>存档并解压缩。
–来自fromnaboo
2012年6月11日在3:05
如果存档包含目录结构,则7za x存档可能更好。
–slm♦
2013年1月25日16:50
#2 楼
Linuxunzip
实用程序实际上并不支持多部分zip。来自手册:尚不支持多部分归档,除非与zip一起使用。 (必须按顺序将所有部分串联在一起,然后必须在串联的归档文件上执行
zip -F
(对于zip 2.x)或zip -FF
(对于zip 3.x)才能“修复”它。此外,zip 3.0及更高版本可以使用zip -s- inarchive -O outarchive
将多部分(拆分)的存档合并为一个合并的单文件存档。有关更多信息,请参见zip 3手册页。)因此,您需要先将各个片段连接起来,然后修复结果。
cat test.zip.*
连接所有名为test.zip.*
的文件,其中通配符*
代表任意字符序列;文件以字典顺序进行枚举,由于前导零,因此与数字顺序相同。 >test.zip
将输出定向到文件test.zip
中。 Pkzip实用程序,您只需要加入零件即可。cat test.zip.* >test.zip
zip -FF test.zip --out test-full.zip
unzip test-full.zip
评论
第二个命令应该是zip -FF test.zip --out test-full.zip-如果没有--out命令将给您一个错误
– Alvin
2012年8月11日下午4:49
对我来说,如果我将zip指向第一个多部分文件,则FF方法行得通,不需要猫。
–贾尼斯·埃默里斯(JānisElmeris)
2014年12月28日下午16:19
正如@JānisElmeris已经提到的那样,无需在使用zip -FF之前将这些档案连接起来。
–René
18年1月5日在13:32
对于zip 3.0,zip -s- inarchive -O outarchive可以正常工作。
– Hongsoog
20年6月11日在5:44
#3 楼
7z x archive.zip.001
它将自动查找其余部分
评论
太奇怪了...要使此方法起作用,您首先需要将所有ZIP文件(.zXX和.zip)重命名为.zip.xxx(.zip是最后一部分),然后在第一个文件上使用7z x ,可以“解压缩”为连接的zip,然后可以使用unzip而不是7z再次将其解压缩...我不确定文件是否已正确解压缩,但至少这次不知道CRC错误。 。ZIP在Linux上是如此令人难以置信的破坏-如果可以的话,请避免。 :(
–能量充足
16年6月13日在10:00
至少对于centos,我们还需要有关如何安装7z的说明
–stiv
19年6月10日在17:07
@Energiequant如果您已经使用7zip来创建多部分,则不需要以这种格式重命名文件。
–年鉴
20-6-5在1:24
#4 楼
我在这里找到了答案:https://superuser.com/a/517758/10264这个答案在概念上与Gilles相似,即首先使用split将split归档合并为普通归档,然后您可以使用unzip解压缩它。
不同的是,不是使用对我不起作用的
-FF
标志,您只是告诉zip重新打包拆分文件而不拆分。这就是手册中-s 0
标志的含义。拆分的存档也可以使用拆分大小0转换为单文件存档:
zip -s 0 test.zip -O single.zip
因此,首先,将拆分的存档合并为一个存档:
zip -s 0 split-foo.zip --out unsplit-foo.zip
然后,使用unzip提取单个存档:
unzip unsplit-foo.zip
此方法仅适用于
.z01
,.z02
,...,.zip
文件结构。如果您的文件名是.zip.001
,.zip.002
...,则首先使用带有重命名的rename zip.0 z test.zip*
(例如)重命名它们。评论
这是zip 3.x的正确答案
–texasbruce
17-10-19在0:49
#5 楼
我认为值得一提的是,unar命令行工具可以通过以下方式解压缩,解压缩,解压缩,解压缩,解压缩等文件,包括拆分文件:unar first_file
https: //directory.fsf.org/wiki/Unar#Details
评论
被低估的评论:我已经尝试了许多其他无效的答案,使用unar会改变游戏规则!
–正确的东西
20年5月14日在9:11
#6 楼
对于来自Google云端硬盘下载的多部分zip文件,我尝试了几种说明的方法,但是没有用(很好)。我终于可以从终端以一种简单的方式做到这一点:解压缩filename.zip.001
,下一部分完成提取后:
unzip filename.zip.002
依此类推...
另一个选项:
7z x filename.zip.001
提取完下一部分内容后:
7z x filename .zip.002
等等...
#7 楼
只是另一个例子。这在bash中为我工作,可以拆分3GB的Oracle安装程序:echo "<installOracleDB.sh>: Splitting OracleDB installer"
zip /tmp/linuxx64_12201_database.zip --out /tmp/linuxx64_12201_oradb.zip -s 1000m
echo "<installOracleDB.sh>: Merging OracleDB installer"
zip -FF /tmp/linuxx64_12201_oradb.zip --out /tmp/linuxx64_12201_database.zip
echo "<installOracleDB.sh>: Removing temporary files OracleDB installer"
find /tmp -type f -name 'linuxx64_12201_oradb*' -exec rm {} +
echo "<installOracleDB.sh>: Unizipping OracleDB installer"
unzip /tmp/linuxx64_12201_database.zip
评论
这看起来与以前的答案非常相似。您能否解释一下它在做什么以及它与已发布的内容有何不同?请不要在评论中回复;编辑您的答案,使其更清晰,更完整。
–斯科特
17年3月3日在18:19
嗨,苏格兰人,我希望我可以在评论中回答,但我现在一点也没做。这个答案给出了一个完整的命令列表,用于在UNIX上拆分,合并和解压缩大文件。我将提供更多解释性文字来阐明我的答案。谢谢您的回复。
–guicey
17年9月9日在9:55
#8 楼
如果您有大量文件或文件很大,此命令汇编将非常方便,因为它可以为您提供进度条:并提取25Gb拆分存档。
#9 楼
以下在Ubuntu 18.04上对我有用。将压缩文件拆分为多个档案,每个档案小于1024MB
prettyprint-override“>
zip -s 1024m -r target.zip target/
获取文件:
target.z01
,target.z02
,...,target.zip
解压缩之前,请将它们组合成一个完整的zip文件
zip -FF target.zip --out target-full.zip
unzip target-full.zip
删除所有.z *文件
rm *.z*
评论
欢迎来到该站点,并感谢您的贡献。但是请注意,@ Gilles的答案在内容上非常相似。因此,请考虑编辑您的帖子,以使方法上的差异更加明显。同样,您写了“在将它们解压缩之前,将它们组合成一个完整的zip文件”,但是有关如何执行此操作的说明似乎并不完整(target.z01等如何处理?)。
– AdminBee
20-4-28在7:01
这行zip -FF target.zip --out target-full.zip将把所有target.z *文件转储到target-full.zip中。而且它不需要为target.z01等显式地编写一些东西。
–husi253
20-4-29在17:48
评论
这在安装了有限软件的Web服务器上可能无济于事,但是我在其他任何地方都没有看到此解决方案,而是我使用的解决方案:java.util.zip API已处理了我向其抛出的所有ZIP部分,甚至在更普遍的情况下也没有结尾部分或最后一部分不完整。我从Jython调用它,所以它是脚本形式,这里是代码:github.com/combatopera/unzipparts