Linux 压缩和解压工具简介

常用的压缩解压工具

压缩 解压 后缀 说明
compress uncompress .Z 现已不常用。
gzip gunzip .gz 当前使用率最高。
bzip2 bunzip2 .bz2 比gzip压缩比更大,浮动不稳定。
xz unxz .xz 压缩比提升明显,算法性能提升。

以上只能压缩文件,不能压缩目录。若是想压缩目录,还得靠打包工具。

打包工具 后缀 说明
tar .tar 最常用的一款打包工具,可结合gzip,bzip2,xz进行压缩和解压。
zip .zip 最通用的一块跨平台打包工具,自带压缩功能。

gzip/gunzip/zcat

gzip压缩后缀名必须为.gz,压缩或解压缩后会删除原文件。

zca可以查看gzip压缩后的文本文件内容。

gzip常用参数:

gzip  [OPTION]...  FILE...
            -d:解压缩,相当于gunzip;
            -1:最快压缩,压缩比最小;
            -9:最小压缩,压缩比最大;(也可以设定为1-9之间的数值)
            -c:将压缩结果输出至标准输出;
            
# 更多参数可使用 man gzip 或 gzip --help 查看

Tipsgzip压缩保留源文件。

gzip  -c  FILE > /PATH/TO/SOMEFILE.gz

bzip2/bunzip2/bzcat

bzip2压缩后缀名必须为.bz2,压缩或解压缩后会删除原文件。

bzcat可以查看bzip2压缩后的文本文件内容。

bzip2常用参数:

bzip2  [OPTION]...  FILE...
            -d:解压缩;
            -1:最快压缩,压缩比最小;
            -9:最小压缩,压缩比最大;(也可以设定为1-9之间的数值)
            -k:keep,保留原文件;

bzip2gzip的基础上做了升级,提供了-k参数,使得其可以使用“官方的方式”保留源文件。

xz/unxz/xzcat

xz压缩后缀名必须为.xz,压缩或解压缩后会删除原文件。

xzcat可以查看xz压缩后的文本文件内容。

xz常用参数:

xz  [OPTION]...  FILE...
            -d:解压缩;
            -1:最快压缩,压缩比最小;
            -9:最小压缩,压缩比最大;(也可以设定为1-9之间的数值)
            -k:保留原文件;

tar/zip

tar

tar只是个归档工具,默认不会压缩。

然而单独归档不能减小体积,甚至反而会加大体积,因为归档代码也需要占用空间,所以归档完成后通常需要压缩,结果此前的压缩工具,就能实现压缩多个文件了。

(1) 创建归档

tar -cf /PATH/TO/SOMEFILE.tar  FILE... 

(2) 展开归档

tar -xf  /PATH/FROM/SOMEFILE.tar

# 展开到指定位置
 
tar -xf  /PATH/FROM/SOMEFILE.tar  -C  /PATH/TO/SOMEDIR

(3) 查看归档文件的文件列表

tar -tf  /PATH/TO/SOMEFILE.tar

(4) 归档压缩

结合压缩工具,我们可以手动将tar包进行压缩。

tar -cf /PATH/TO/SOMEFILE.tar FILE... 
gzip /PATH/TO/SOMEFILE.tar

但如果每次都要操作两个步骤,难免会略显麻烦。

tar提供了一些参数,可以一步到位打包压缩:

-z:gzip2
    -zcf /PATH/TO/SOMEFILE.tar.gz FILE...
    解压缩并展开归档:-zxf  /PATH/TO/SOMEFILE.tar.gz
    
-j:bzip2
    -jcf /PATH/TO/SOMEFILE.tar.bz2 FILE...
    解压缩并展开归档:-zxf  /PATH/TO/SOMEFILE.tar.bz2
    
-J: xz
    -Jcf /PATH/TO/SOMEFILE.tar.xz FILE...
    解压缩并展开归档:-zxf  /PATH/TO/SOMEFILE.tar.xz

zip

最为通用的压缩工具(Linux/Unix/Windows),本身既能归档,又能压缩,但是压缩比有限。

zip /PATH/TO/SOMEFILE.zip FILE...