如何压缩大型目录

如何压缩大型目录

有没有办法压缩 EXT2/EXT3 下的非常大的目录,而不需要简单地重建目录?

我记得函数警告操作系统实现seekdirtelldir运行目录压缩的风险。这听起来就像我在这种情况下想要的,但在实践中我不熟悉这些语义。

背景: 我有几个目录本身就有好几 MB 的大小 —— 它们过去被无数的小文件淹没了:

$ ls -lh
drwxr-x--- 2 root root 1.3M Oct  5 12:49 big
drwxr-x--- 2 root root 2.3M Oct  5 12:49 this_one_is_empty_now
drwxr-x--- 2 root root 6.1M Oct  5 12:49 yikes

答案1

目录无法在线精确压缩因为seekdir/telldir 的要求之一。它们要求任何程序都能够无限期地保持目录内的位置,并且仍然只读取任何给定的条目一次;因此,在挂载 fs 时不能移动条目。

您可以使用 离线压缩目录e2fsck -D

答案2

你调查过吗? 这是一个改进的 gzip。

John Allspaw 在他的博客上讨论了这个问题:
http://www.kitchensoap.com/2010/04/02/pigz-parallel-gzip-omg/

相关内容