一、zip压缩工具

zip支持压缩目录和文件。zip压缩的文件后缀名为.zip。
yum install -y zip  #安装zip压缩工具


zip命令压缩文件:zip 压缩包名 被压缩的文件名。后缀名以.zip结尾。

3966eaecd87223f6f35535a0deb372ab.png


zip命令压缩目录:zip -r 压缩包名 被压缩的目录(文件)。后缀名以.zip结尾。


zip压缩与bzip2、xz、gzip压缩的不同之处在于,zip压缩后原文件还在,其它三种压缩后原文件就不在了。

6790f1b955c40d871fda5aefe14afd9a.png


unzip解压缩:unzip 压缩包。

678c2cca19cb902bcb66ad71aebce2cd.png

当解压的目录下存在相同名字的文件,系统会询问是否覆盖。y覆盖,n不覆盖,A全部覆盖,N全部不覆盖,r重命名。


将d6z.zip 解压到ddd目录。格式:unzip 压缩包 -d 目录。
压缩前是什么文件名,解压后也是那个文件名,不能修改。

df3ba7a343c3cf7fa39ae298b5774df2.png

zip没有工具可以查看压缩文件的内容。
unzip -l 可以看压缩包的文件列表。



二、tar打包

tar 可以将多个目录或文件打包成一个大文件,同时还可以通过gzip、bzip2的支持,将该文件同时进行压缩。tar打包后缀名为.tar。tar打包后与打包前文件大小没多大变化。


打包:
tar -cv -f filename.tar要被打包的文件或目录名称
压缩(bzip2):
tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称


查询:
tar -t -f filename.tar.
查询(bzip2):
tar -jvt -f filename.tar.bz2


解包:
tar -xv -f filename.tar -C 欲解包的目录
解压缩(bzip2):
tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录


-c:新建打包文件,可搭配-绿爱查看过程中被打包的文件名。
-t:查看打包文件的内容含有那些文件名。
-x:解打包或解压缩的功能,可以搭配-C 在特定目录解开

       注意:-c,-t,-x不可能同事出现在一串命令中。
-j:通过bzip2的支持进行压缩/解压,此时文件名最好为:
     *.tar.bz2
-z:通过gzip的支持进行压缩/解压,此时文件名最好为:
     *.tar.gz
-v:在压缩/解压的过程中,将正在处理的文件名显示出来。
-f:-f后面要接处理的文件名
-C 目录:在解压缩时,要在特定目录解压缩时使用。
--exclude file:在压缩过程中不要将file打包。


使用-c参数打包目录d6z,加上-v参数后会显示打包过程中哪些文件和目录别打包了。打包之后的大小和打包之前一样大。

fb98eeb89be3b39cddf0d856aef881f8.png

如果文件(d6z.tar)已存在,再次打包的话,之前的文件(d6z.tar)会被覆盖,不会有提示


使用-x参数解包,解包之后,会生成之前打包的那个目录(d6z)同样的目录。并且打包文件(d6z.tar)还在。

18b4359e046ddf0a0e0026075222f34d.png

解包时覆盖原来相同目录,并且不会提示。


tar不仅可以打包目录和文件,还可以同时打包目录和文件。

d73f58a5b008a7d456f294faf44bd8bb.png


--exclude 过滤指定的文件不去打包它。
打包时将d6z.tar和123.tar过滤。

14fd091db8d43f0e7d9dc6daac77b031.png


tar -cv -f a.tar /tmp/ --exclude "*.txt" 打包目录tmp,过滤掉其中以.txt结尾的文件。



三、打包并压缩

打包并压缩(bzip2):

tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

查询(bzip2):

tar -jvt -f filename.tar.bz2

解打包并接压缩(bzip2):

tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

-z:支持gzip解压/压缩

-j:支持bzip2解压/压缩

-J:支持zx解压/压缩

5869e0ee9ab6eba682da787b00823866.png

解压也需要压缩对应的参数。


tar -zxv -f abc.tar.gz -C /test

#解压abc.tar.gz 并将解压出来的文件放到/test中。