我有一个文件archive.tar.gz,大小为38 GB。我想将其存储在最大1 GB的块中。要做到这一点,我想把它分成子文件archive_0.tar.gz,archive_1.tar.gz,...因此每个子文件都是单独可读的(而不仅仅是在第1024个字节处剪切的原始文件)。换句话说,每个archive_x.tar.gz文件都应该是有效的tar.gz文件。我该怎么办?最好使用shell脚本或python。谢谢你,谢谢
archive.tar.gz
archive_0.tar.gz
archive_1.tar.gz
archive_x.tar.gz
tar.gz
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(未压缩)数据。可能使用一些SQLite或Redis或PostGreSQL数据库来存储元数据、名称(即文件路径)、权限、所有者和每个文件的大小。1.编写另一个脚本,将数据分块为单个GB的未压缩块,并适当收集文件路径1.运行适当的tar命令创建archive_x.tar.gz
1条答案
按热度按时间kq4fsx7k1#
假设您有足够的磁盘空间,运行Linux,并且可能具有root权限:
1.列出原始tar存档中的文件,包括大小和不大小
字符串
1.编写GNU awk或Python脚本(或使用libtar的C程序)解析这些存档列表,检查没有单个文件具有1Gb(未压缩)数据。可能使用一些SQLite或Redis或PostGreSQL数据库来存储元数据、名称(即文件路径)、权限、所有者和每个文件的大小。
1.编写另一个脚本,将数据分块为单个GB的未压缩块,并适当收集文件路径
1.运行适当的tar命令创建
archive_x.tar.gz