在Unix上创建多部分档案的最简单方法是什么?

时间:2009-06-25 09:46:24

标签: linux compression

tar|gzip很棒,除了文件太大,通过网络传输它们变得复杂。 DOS时代的归档程序通常用于创建多部分存档,每个软盘一个,但gzip似乎没有这样的选项(因为Unix流式传统哲学)。

那么在Linux下执行此操作的最简单,最强大的方法是什么(显然存档大小约为2GB,而不是1.44MB)?

4 个答案:

答案 0 :(得分:3)

你可以使用/usr/bin/split(使用“-b”选项)将其拆分成碎片 - 阅读'man split'

答案 1 :(得分:2)

典型的Unix解决方案是“split -b”,但这个选项不是很强大。如果任何文件损坏或丢失,那么你将失去所有文件。

您可以将split与bzip2结合使用,bzip2通常能够在一定程度上修复损坏的存档。

更安全的方法是使用parchive(更具体地说是PAR2)。它将以RAID风格创建其他文件,以便从文件部分的任何损坏中恢复。有关更多信息,请查看Linux发行版上的quickpar,parchive.sf.net,par2包...

答案 2 :(得分:2)

我不打算再使用gzip进行存档,只是为了解包尚未转换的其他人的档案: - )

7zip具有疯狂级别压缩(虽然我没有在所有场景中直接进行压缩)并且它还支持创建卷,这是对特定问题的回答。

答案 3 :(得分:1)

您可以使用tar并生成多部分存档。诀窍是你必须指定你希望生成的存档文件的名称,每个存档文件都有一个单独的-f标志。幸运的是,有一种简单的方法可以做到这一点。假设您希望获得的档案文件不超过10个。然后你可以使用这个命令:

tar -c -M -L 2G -farchive{1..10} <sourcefile>

这将扩展为10 -f标志,每个标志都带有编号的存档文件名。要提取,请使用

tar -x -M -farchive{1..10}

唯一的问题是你不能使用这种带有tar的多存档来压缩(-z)文件。