8.13 用bzip2获得最好的压缩效果
-[0-9]
与zip
和gzip
一样,用bzip2
压缩时也可以调整它使用的压缩率。bzip2
命令使用0
到9
来表示压缩率的度量标准:0
表示“一点也不压缩”(和tar
相似,稍后会看到),1
表示“尽快完成压缩,而不需要压缩太多”,9
表示“尽可能压缩文件,不介意会为此等待较长的时间”。默认值是6
,但现在的计算机速度已经足够快,一直使用9
表示的压缩率也不会有什么问题。
$ ls -l
-rw-r--r-- scott scott 1236574 moby-dick.txt
$ bzip2 -c -1 moby-dick.txt > moby-dick.txt.bz2
$ ls -l
-rw-r--r-- scott scott 1236574 moby-dick.txt
-rw-r--r-- scott scott 424084 moby-dick.txt.bz2
$ bzip2 -c -9 moby-dick.txt > moby-dick.txt.bz2
$ ls -l
-rw-r--r-- scott scott 1236574 moby-dick.txt
-rw-r--r-- scott scott 367248 moby-dick.txt.bz2
压缩率为1
时的结果是424 KB,而压缩率为9
时的结果是367 KB,区别相当大!还要注意用gzip
和bzip2
命令最终生成的文件在大小上的差异。都是用-9
代表的压缩率,gzip
压缩后的moby-dick.txt
大小为488 KB,而bzip2
将文件大小进一步压缩至367 KB。bzip2
命令的压缩速度明显要比gzip
命令慢,但是在速度快的计算机上,bzip2
只不过比gzip
多花两三秒钟的时间,通常无需担心这个问题。
说明 如果想要更灵活些,可以在
.bashrc
文件中为gzip
命令定义一个别名,如下所示:
alias bzip2='bzip2 -9'
这样一来,就能总是是使用
-9
的压缩率,而不用再可以考虑它了。