python 如何将大的tar.gz文件拆分为最大1 GB的较小的tar.gz文件?

y0u0uwnf  于 2023-08-02  发布在  Python
关注(0)|答案(1)|浏览(141)

我有一个文件archive.tar.gz,大小为38 GB。我想将其存储在最大1 GB的块中。
要做到这一点,我想把它分成子文件archive_0.tar.gzarchive_1.tar.gz,...因此每个子文件都是单独可读的(而不仅仅是在第1024个字节处剪切的原始文件)。
换句话说,每个archive_x.tar.gz文件都应该是有效的tar.gz文件。
我该怎么办?最好使用shell脚本或python。
谢谢你,谢谢

kq4fsx7k

kq4fsx7k1#

假设您有足够的磁盘空间,运行Linux,并且可能具有root权限:
1.列出原始tar存档中的文件,包括大小和不大小

tar tzvf archive.tar.gz > /tmp/archive-full-list
tar tzf archive.tar.gz > /tmp/archive-list

字符串
1.编写GNU awk或Python脚本(或使用libtar的C程序)解析这些存档列表,检查没有单个文件具有1Gb(未压缩)数据。可能使用一些SQLiteRedisPostGreSQL数据库来存储元数据、名称(即文件路径)、权限、所有者和每个文件的大小。
1.编写另一个脚本,将数据分块为单个GB的未压缩块,并适当收集文件路径
1.运行适当的tar命令创建archive_x.tar.gz

相关问题