我有一个tar.gz文件,其中包含几百万个文件。由于文件数量的限制,我想要划分内容而不解压缩它。是否有一种方法可以将tar/tar.gz文件划分为多个tar/tar.gz。
如果这是不可能的,可以用python来代替吗?
第一篇文章如果我做错了什么,请告诉我。
编辑:我不想把它放在一起。我想要能够处理每个‘分裂’的文件。
发布于 2016-07-03 20:07:49
分裂是正确的工具。
将文件拆分为10 in块
split -b10m /path/to/file parts
把它放在一起
cat parts* > file
发布于 2016-07-03 20:09:43
您可以使用split来分割它,但是单独的部分在重新组合之前是没有任何意义的。如果你想把它分割成自成一体的档案,你需要解压它。
发布于 2016-07-03 21:08:19
如果不进行解压缩,就不可能将压缩的tar存档分割成块:压缩应用于“tar流”之上,压缩器将此流视为不透明的二进制流。
因此,任何可以从原始压缩的tar存档中生成一组tar文件的工具实际上都会解压缩它。
tar本身没有将tar archive作为输入并生成另一个tar作为输出文件的模式,而不是append和delete模式。
由于tar存档非常大,您可能不希望多次解压缩它,以便逐部分提取文件,同时为每组提取的文件创建单独的存档。
有一个python库可能允许“在飞行中”进行tar文件处理(我在python中不太擅长亲自验证这一点)。因此,您可以开发一个python脚本,该脚本将从源存档读取项目,然后将它们附加到当前的输出存档中,直到其大小达到您选择的极限。然后,脚本将创建下一个输出存档并继续进行。
https://unix.stackexchange.com/questions/293638
复制相似问题