我可以在Ubuntu中将大的tar.bz2文件分割成几个小文件,并单独提取这些小的tar.bz2文件吗?
谢谢!
不确定是否还需要帮助,但我找到了一种方法,可以至少让您使用split命令以及tar(bz2)压缩。就每个文件单独提取而言,此选项将将文件视为整体的一部分(就像Winzip在跨多个卷时所做的那样...如果缺少一个卷,则归档文件作为整体将损坏)。
创建拆分文件。请注意,这将按顺序创建带有“aa,ab,ac”指定的文件:
tar -cv(z/j)f-(要存档的文件)| split-b(以字节为单位的大小,例如4000m)-(输出归档文件的名称)
提取拆分文件:
cat(file*)| bzcat/gunzip(-d) | tar(t/x)v(j/z)f-
(如果使用了“j”选项,则bzcat将进入管道中),或者(如果使用了“z”选项,则gunzip将进入管道中)。如果出现错误,则还可能需要在这两个管道内使用“gunzip -d”。
cat file.tar.bz2* | bzcat > myfile.tar
命令来先获取tar文件,因为直接将数据流传输到tar命令并不能正常工作(在Ubuntu 16.04上)。 - scorpiodawg--multi-volume
选项:tar -cf archive.tar --multi-volume --tape-length 1024 folder
很遗憾,它不能与压缩存档一起使用:
tar: Cannot use multi-volume compressed archives
将文件分割成多个文件。
如果您的tar文件大小超过1.1GB,它将自动创建大小为1.1GB的文件。您可以增加数量(例如1000 {2..1000}),或者增加输入到tape-length参数的值。
tar --tape-length=1048576 -cMv --file=tar_archive.{tar,tar-{2..100}} backup.tar.lzma
但正如@michal所说,无法单独提取它们。
tar: backup.tar.lzma: Cannot extract -- file is continued from another volume
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now