有没有办法在 EXT2/EXT3 下压缩一个非常大的目录而无需简单地重新制作目录?
我记得perlfunc警告说操作系统实现seekdir
和telldir
运行目录压缩的风险。在这种情况下,这听起来像是我想要的,但我在实践中不熟悉这些语义。
背景: 我有几个目录本身就有很多 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
Run Code Online (Sandbox Code Playgroud)
由于seekdir/telldir 的要求,无法在线压缩目录。它们要求任何程序能够无限期地在目录中保持位置,并且仍然只能读取任何给定的条目一次;因此,在安装 fs 时不能移动条目。
您可以使用e2fsck -D
.
你调查过pigz吗?这是一个改进的 gzip。
John Allspaw 在他的博客上讨论了这个问题:
http://www.kitchensoap.com/2010/04/02/pigz-parallel-gzip-omg/