二十、zip压缩工具、tar打包、打包并压缩

一、zip压缩工具

在Windows和Linux中都常用。可以压缩目录和文件,压缩目录时,需要指定目录下的文件。压缩后源文件不删除。示例:

# zip 1.txt.zip 1.txt (压缩文件,先目标文件名,再源文件名)

 adding: 1.txt (deflated 64%)

压缩目录时需要加上-r选项,如下:

# zip -r 1.txt.zip 1/

 adding: 1/ (stored 0%)

 adding: 1/11/ (stored 0%)

 adding: 1/11/111/ (stored 0%)

 adding: 1/1.txt (stored 0%)

unzip命令:解压.zip格式的文件。

若没有该命令,用yum工具安装。

示例:

# unzip 3.txt.zip

Archive:  3.txt.zip

replace 1/1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y  (因为原来的文件还在,询问是否覆盖)

extracting: 1/1.txt

-d:解压时指定路径。不可指定文件名,加了文件名的话会生成一个以设定的文件名为名字的目录,再将解压的文件放在该目录下。

# unzip 1.txt.zip -d md2/

Archive:  1.txt.zip

 inflating: md2/1.txt              

  creating: md2/1/

extracting: md2/1/1.txt

zip工具没有zcat那类的cat工具,唯一能用unzip -l+压缩文件名,查看压缩包内的文件列表。

二、tar打包

tar本身就是一个打包工具,可以把目录打包成文件,把所有文件整合成一个大文件,方便复制或移动。打包后原文件不删除

格式:tar [-zjxcvfpP] filename tar

-z:同时用gzip压缩。

-j:同时用bzip2压缩。

-J:同时用xz压缩。

-x:解包或解压缩。

-t:查看tar包里的文件。

-c:建立一个tar包或者压缩文件包。

-v:显示操作过程。

-f:后跟文件名,表示压缩后的文件名为filename,或者解压文件filename。

多个参数组合的情况下,把-f写到最后面。

-p:使用原文件的属性。不常用。

-P:可使用绝对路径。不常用。

--exclude filename:在打包或压缩时,不要将filename文件包括在内。排除文件或目录,不常用。

-f参数后先跟目标文件名,再跟需打包的文件或目录。

示例:

# tar -cf test.tar test(建立tar包,文件名,再建立一个同样的会覆盖之前的)

# tar -xvf   test.tar test(解压,显示操作过程,文件名,会覆盖前面的文件,不会询问是否覆盖)

test/

test/abc/

test/abc/AC/

test/12.txt

# tar -tf test.tar (查看tar包内的文件)

test/

test/abc/

test/abc/AC/

test/12.txt

--exclude用法:可使用“*.txt”等。

# mkdir test111/test222

# tar -cvf test111.tar --exclude test222 test111

test111/

test111/1.txt

这样就不会将test222目录打包进来。

三、打包并压缩

tar可在打包时直接压缩,支持gzip压缩、bzip2压缩和xz压缩。

使用-z选项可压缩成gzip格式的文件,示例:

# tar -czvf test123.tar.gz test

test/

test/abc/

test/abc/AC/

test/12.txt

test/test123.tar.gz

test/test12.tar.gz

# tar -xvzf test123.tar.gz (可用-zx选项,解压.tar.gz格式的压缩包)

-j和-J是同样的用法。