8.13 用bzip2获得最好的压缩效果

-[0-9]

zipgzip一样,用bzip2压缩时也可以调整它使用的压缩率。bzip2命令使用09来表示压缩率的度量标准:0表示“一点也不压缩”(和tar相似,稍后会看到),1表示“尽快完成压缩,而不需要压缩太多”,9表示“尽可能压缩文件,不介意会为此等待较长的时间”。默认值是6,但现在的计算机速度已经足够快,一直使用9表示的压缩率也不会有什么问题。

  1. $ ls -l
  2. -rw-r--r-- scott scott 1236574 moby-dick.txt
  3. $ bzip2 -c -1 moby-dick.txt > moby-dick.txt.bz2
  4. $ ls -l
  5. -rw-r--r-- scott scott 1236574 moby-dick.txt
  6. -rw-r--r-- scott scott 424084 moby-dick.txt.bz2
  7. $ bzip2 -c -9 moby-dick.txt > moby-dick.txt.bz2
  8. $ ls -l
  9. -rw-r--r-- scott scott 1236574 moby-dick.txt
  10. -rw-r--r-- scott scott 367248 moby-dick.txt.bz2

压缩率为1时的结果是424 KB,而压缩率为9时的结果是367 KB,区别相当大!还要注意用gzipbzip2命令最终生成的文件在大小上的差异。都是用-9代表的压缩率,gzip压缩后的moby-dick.txt大小为488 KB,而bzip2将文件大小进一步压缩至367 KB。bzip2命令的压缩速度明显要比gzip命令慢,但是在速度快的计算机上,bzip2只不过比gzip多花两三秒钟的时间,通常无需担心这个问题。

说明 如果想要更灵活些,可以在.bashrc文件中为gzip命令定义一个别名,如下所示:

  1. alias bzip2='bzip2 -9'

这样一来,就能总是是使用-9的压缩率,而不用再可以考虑它了。