Linux 上常见的压缩指令有 gzip
,bzip2
以及最新的 xz
。压缩率从高到低为xz,bzip2,gzip。压缩率越高,压缩所花的时间就越长。所以实际工作中需要根据具体情况在压缩率和压缩时间中做出抉择。
以下为几个常见的压缩文件扩展名:
1 | *.Z compress 程序压缩的文件; |
compress
指令已经过时了,取而代之的是gzip
。
gzip, zcat/zmore/zless/zgrep
gzip
可以解开 compress
,zip
与 gzip
等软件所压缩 的文件。 gzip
所建立的压缩文件为 *.gz,gzip
语法:
1 | gzip [-cdtv#] 文件名 |
示例:
使用gzip
压缩/temp/services文件,并查看压缩比:
1 | root@ubuntu:/temp# gzip -v services |
因为services是文本文件,所以可以使用zcat
/zmore
/zless
去读取 :
1 | root@ubuntu:/temp# zcat services.gz |
将services.gz解压缩:
1 | root@ubuntu:/temp# gzip -d services.gz |
使用gzip
指令以最好的压缩比压缩services,并保留原文件:
1 | gzip -9 -c services > services.gz |
-c
可以将原本要转成压缩文件的资料内容,将它变成文字类型从屏幕输出, 然后我们可以透过大于 (>
) 这个符号,将原本应该由屏幕输出的数据,转成输出到文件而不是屏幕,所以就能够建立出压缩文件了。只是文件名也要自己写, 当然最好还是遵循 gzip 的压缩文件名规范。
bzip2, bzcat/bzmore/bzless/bzgrep
bzip2
则是为了取代 gzip
并提供更佳的压缩比而来的,语法和gzip
差不多:
1 | bzip2 [-cdkzv#] 文件名 |
示例:
使用bzip2
命令压缩services文件:
1 | root@ubuntu:/temp# bzip2 -v services |
xz, xzcat/xzmore/xzless/xzgrep
bzip2
已经具有很棒的压缩比,不过显然某些自由软件开发者还不满足,因此后来还推出了 xz
这个压缩比更高的软件。xz
的语法:
1 | xz [-dtlkc#] 文件名 |
对比
分别使用gzip
,bzip2
和xz
命令默认压缩比对service文件进行压缩,并查看时间:
1 | root@ubuntu:/temp# time gzip -c services > services.gz;time bzip2 -k services;time xz -k services |
查看压缩后的文件大小:
1 | root@ubuntu:/temp# ls -l services services.gz services.bz2 services.xz |
《鸟哥的Linux私房菜》读书笔记