归档大量文件/一个大文件

归档大量文件/一个大文件

我想压缩大约 100,000 个文件(这就是所说find . -type f | wc -l的),总磁盘使用量为 100 GB。大多数文件都很小,但只有少数几个文件占了 100 GB 中的约 70 GB。

我不想为此使用 tar 或 tar.gz,因为如果我想访问存档,File Roller 必须先从外部硬盘读取整个存档,然后我才能看到文件列表。如果我尝试在终端上列出文件,情况也是如此。

我不需要 tar 的权限管理,因为我能记住一些需要其他权限的文件。我应该使用什么压缩算法?

当我这样做时:我使用以下命令进行完整磁盘备份:

dd if=/dev/sda bs=32M | gzip -9 > /location/dateAndMachineName.gz

它的压缩效果非常好。但你知道更好的压缩算法吗?

答案1

我知道的唯一解决办法是像素sudo apt-get install pixz,这是 xz 的一个变体,使用块编码器,允许快速随机访问/索引。此外,它是一种使用多个核心进行压缩的并行方法。

引用文档:

现有的 XZ Utils (http://tukaani.org/xz/) 在 .xz 文件格式中提供了很好的压缩效果,但它们有两个显著的​​问题:

  • 它们是单线程的,而现在大多数用户都拥有多核计算机。
  • 它们生成的 .xz 文件只是一大块压缩数据,而不是许多小块的集合。这使得随机访问原始数据变得不可能。

有了 pixz,这两个问题都解决了。

使用方法很简单:

tar -Ipixz -cf foo.tpxz foo压缩文件夹foo

pixz -l foo.tpxz列出其中的文件(快!)

pixz -x <file_path> < foo.tpxz | tar x提取<file_path>档案中的单个文件

作为奖励,由于文件首先被压缩,您还将获得存储的访问权限!

答案2

我只想到一个解决方案:创建一个新的分区,使用 btrfs 文件系统并激活透明压缩。请记住,有些人仍然认为 btrfs 是一个“实验性”文件系统。话虽如此,我的辅助备份硬盘正在使用 btrfs(已经使用两年多了),到目前为止,它没有给我带来任何问题。但像往常一样,YMMV。

如果您还不熟悉 btrfs,它应该可以帮助您开始使用 btrfs。

相关内容