带有子目录压缩的存档目录系统-dar?

带有子目录压缩的存档目录系统-dar?

我有大量文件(未压缩时约 100GB),我想将其存储在小于 2GB 的块中,以便在基于 Windows Server 的存储系统上进行备份。我在工作站上运行 Ubuntu。

数据集收集在子目录中,具有分层结构。(例如,目录 A 包含三个子目录 1、2、3,每个子目录可能包含 30 个子目录,每个子目录包含 6 或 7 个文件,并且名称相同(在每个子目录中))

tar会压缩并存档我的数据,但如果我想访问单个部分,那就相当麻烦了。它也很慢,如果我使用压缩,我必须先解压,然后才能提取单个目录(据我所知)

这会使用类似如下的东西:

tar -cf mySuperStructure.tar;
split -b 1024M mySuperStructure.tar mySuperStructure.tar.part- ;
gzip mySuperStructure.tar.part-* ;

或类似 - 我知道 tar 有一个-z选项,但我认为这在使用时可能会有问题split?同样,我相信有一个选项可以拆分tar档案,可能带有压缩,但文件以无用的方式拆分(也许这是最好的解决方案,如果是这样 - 请提供意见)

或者,dar将按文件级别压缩文件,允许-m指定最小大小。这将是理想的,但对于大量文件来说,压缩和存档设置需要很长时间。最低级别的目录大小约为 70MB,因此压缩这些目录会很有用(而且我怀疑速度会更快,因为压缩操作更少?)

我可以单独指定子目录的压缩,而不压缩单个文件吗?如果可以的话,这会更快吗?

手动实施可能如下所示:

for levelA in $(ls); do
cd levelA;
    for subdirectoryCase in $(ls); do
    cd subdirectoryCase;
        for subdirSmall in $(ls); do
        gzip subdirSmall;
        done
    cd ..;
    tar -cf $subdirectoryCase.tar $subdirectoryCase;
    gzip $subdirectoryCase.tar;
    done
cd ..;
tar -cf $levelA.tar $levelA;
gzip $levelA.tar;
done

tar -cf superStructure.tar levelA1.tar levelA2.tar levelA3.tar;
gzip superStructure.tar;

但这似乎可能是微观管理到可怕的程度(但这可能仍然是最好的,我不知道?)dar可以替代tar整个过程,并且split可以在最终之前使用gzip,假设早期的 gzip 文件足够小(它们不会,但大概可以用类似的方式处理)

相关内容