ncompress 可以将文件压缩到 99.99% 的比率吗?

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 文件,它就可以正常工作。

答案1

压缩算法具有不同的压缩率,具体取决于它们所压缩的数据的属性。例如:

$ 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),因此图像很可能比所需的大得多,并且仅填充了重复的数据。


当然,gzipcompressbzip2和其他文件对给定文件都有不同的压缩比。这就是为什么许多大型开源项目提供多种由不同算法压缩的下载,以便用户可以下载他们具有解压缩实用程序的最小文件。

相关内容