linux – ncompress压缩文件到99.99%的速率?

我正在使用旧的ncompress来创建备份文件.而我所看到的是惊人的:

[root@centos6 home]# ll -l -b mytest*
-rw-r--r--. 1 root root 1073741824 Mar  8 13:41 mytest.iso
-rw-r--r--. 1 root root      88099 Mar  9 10:26 mytest.iso.bak.Z

这是我使用的命令:

compress -c mytest.iso>mytest.iso.bak.Z

mytest.iso(实际上是centos6.8-livecd.iso)的大小从1073741824(1.0G)变为88099(87K).

但是当我使用时:

tar -cvf mytest.iso.tar.gz mytest.iso

tar.gz文件的大小没有太大变化:

-rw-r--r--. 1 root root 1073745920 Mar  9 10:43 mytest.tar.gz

这是正常的吗?如果我解压缩iso文件就可以了.

解决方法:

压缩算法具有不同的压缩比,具体取决于它们正在压缩的数据的属性.例如:

$dd if=/dev/zero of=test.img bs=1m count=1024
$compress -c test.img > test.img.Z
$gzip -c test.img > test.img.gz
$wc -c test.img test.img.gz test.img.Z
 1073741824 test.img
    4685486 test.img.gz
      84781 test.img.Z
 1078512091 total

由大多数重复的零组成的文件可能是该算法的最佳情况.由于您获得了类似的压缩比,并且由于您的文件具有这样的圆形大小(1GB),因此图像可能比必要的大得多并且仅填充重复数据.

当然,gzip,compress,bzip2等在给定文件上都有不同的压缩比.这就是为什么许多大型开源项目提供了由不同算法压缩的多个下载 – 这样用户就可以下载他们拥有解压缩实用程序的最小文件.

上一篇:java-Huffman代码将位写入文件以进行压缩


下一篇:在保存在PostgresSQL上之前压缩字符串是否有价值?