1.压缩

gzip工具

语法:gzip filename    压缩文件,只能压缩文件,不能压缩目录;

生成filename.gz的压缩文件,源文件会消失。

    -n:为压缩级别1-9,默认为级别6

     -d:解压缩文件   

gunzip filename.gz    解压缩文件,解压后,原压缩文件也会消失。

zcat filename.gz    查看压缩文件的内容

bzip2工具

语法:bzip2 filename    压缩文件,只能压缩文件,不能压缩目录;

生成filename.bz2的压缩文件,源文件会消失。

    -z:压缩文件,可加可不加,都能压缩文件。

    -d:解压缩文件

bunzip2 filename.bz2    解压缩文件,解压后,原压缩文件也会消失。

bzcat filename.bz2    查看压缩文件的内容

xz工具

语法:xz filename 压缩文件,只能压缩文件,不能压缩目录;

生成filename.xz的压缩文件,原文件会消失。

    -d:解压缩文件

unxz filename.xz    解压缩文件,解压后,原压缩文件也会消失

xzcat filename.xz    查看压缩文件的内容

gzip、bzip2、xz这三个压缩工具,都是只能压缩文件,不能压缩目录。

-d参数都可以直接解压。

压缩或者解压的同时,源文件都会消失。

可以同时压缩几个文件,但不会直接压缩到一个文件里面,而是各自生成压缩文件。

这个几工具产生的压缩包都可以在windows中,找到对应的工具去解压;

包括下面的tar打包工具也一样。

zip和unzip工具

这两个工具都要另外安装

yum install -y zip 

yum insrall -y unzip

zip是压缩工具,unzip是解压缩工具。

压缩文件:zip filename.zip filename    

压缩目录:zip -r filename.zip filename

解压缩:unzip filename.zip

unzip -l filename.zip    列出压缩包里面的文件列表清单

unzip -d /tmp/ filename.zip    指定解压后的路径。把filename.zip解压到/tmp/目录下。

zip和unzip压缩和解压缩后,源文件都不会消失。可以压缩文件和目录。

zip压缩多个文件时,是把几个文件或目录压缩到同一个文件下面的

unzip解压的时候,如果有相同文件,会提示是否覆盖

yum provides '*/cat'        查找产生此命令的安装包

普通文件的压缩率

zip=gzip<bzip2<xz

2.打包压缩

tar:将多文件和目录一起打包成一个文件。打包的时候会整理文件,把实际大小占不了一个‘块’

        的文件整合起来,这样会节省一部分空间。

语法:tar [-zjcxvfpP ] filename.tar.XX filename(文件或目录),XX指的是压缩方法

    -c    创建

    -v    显示打包过程

    -f    打包或解包成指定的文件名,f参数与其它多个参数组合使用时,放在最后。

    -x    解包或解压缩包

    -t    显示tar包的文件列表

    -z    gzip压缩

    -j    bzip2压缩

    -J    xz压缩

    -u    追加打包内容

    -C    指定解包后目录

tar -cvf filename.tar filename    把filename的文件和目录打包成名为filename.tar的包

tar -xvf filename.tar -C /tmp/    把filename.tar的包解包,指定目录到/tmp/下面

无论是打包还是解包,源文件都不会消失。解包的话,会直接覆盖已经存在的目录或文件,不作询问。

tar -czvf filename.tar.gz filename    

把filename的文件和目录打包并用gzip压缩为filename.tar.gz的包

tar -cjvf filename.tar.bz2 filename    

把filename的文件和目录打包并用bzip2压缩为filename.tar.bz2的包

tar -xzvf filename.tar.gz -C /tmp/

将filename.tar.gz的gzip压缩包,解压到/tmp/目录下

tar -xjvf filename.tar.bz2 -C /tmp/

将filename.tar.bz2的bzip2压缩包,解压到/tmp/目录下

tar -cjvf filename.tar.bz2 --exclude '1*' --exclude '*.sh' /etc/

将/etc/目录下的所有文件和目录用bzip2压缩的同时打包成filename.tar.bz2的文件;

但不包含‘1’开头和‘.sh’结尾的文件和目录

tar -u filename -vf filename.tar        不能写成-uvf

将文件filename追加到filename.tar这个包里去,解包后,旧文件会被新文件覆盖。

tar --delete -f filename.tar filename

从filename.tar包中删除指定文件filename

使用不同的压缩工具进行打包压缩的时候,最好以对应的工具的缩写结尾,避免搞不清楚是用什么工具压缩。

file命令可以查看压缩文件所用的压缩工具