四周第五次课

6.5 zip压缩工具linux

6.6 tar打包windows

6.7 打包并压缩数组

6.5 zip压缩工具工具

zip压缩包在windows和linux中都比较经常使用,它能够压缩目录和文件,压缩目录时,须要指定目录下的文件。spa

[root@localhost d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt.net

[root@localhost d6z]# mkdir /tmp/aminglinux
[root@localhost d6z]# mkdir /tmp/aminglinux/2
[root@localhost d6z]# cp 4.txt !$

cp 4.txt /tmp/aminglinux/2
[root@localhost d6z]# cp -r /tmp/aminglinux .
[root@localhost d6z]# tree aminglinux

aminglinux
└── 2
    └── 4.txtip

1 directory, 1 file
[root@localhost d6z]# du -sh aminglinux/
4.2M aminglinux/get

[root@localhost d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt  aminglinuxtest

zip后面先跟目标文件名,即压缩后的自定义压缩包名,而后跟要压缩的文件或者目录。如果你的CentOS没有该命令,使用命令yum install -y zip安装便可。
[root@localhost d6z]# zip 2.txt.zip 2.txt

  adding: 2.txt (deflated 73%)
[root@localhost d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  aminglinux
[root@localhost d6z]# du -sh 2.txt.zip
1.2M 2.txt.zip可视化

[root@localhost d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  aminglinux

zip压缩目录须要加-r选项。
[root@localhost d6z]# zip aming.zip 3.txt aminglinux
  adding: 3.txt (deflated 73%)
  adding: aminglinux/ (stored 0%)

[root@localhost d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  aminglinux  aming.zip
[root@localhost d6z]#

zip压缩文件有个特色,压缩完了之后,原来的文件不删除。不像gzip、bzip二、xz,它们三个压缩完了原来的文件就消失了。

[root@localhost d6z]# du -sh aming.zip
1.2M aming.zip
[root@localhost d6z]#

zip解压缩文件,使用命令unzip 压缩文件名,由于原来的文件没有消失,因此解压时会询问一下。

[root@localhost d6z]# unzip aming.zip
Archive:  aming.zip
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: 3.txt                  

[root@localhost d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  aminglinux  aming.zip
[root@localhost d6z]# mkdir test

-d选项能够指定解压的文件放到什么路径。
[root@localhost d6z]# unzip 2.txt.zip -d test/

Archive:  2.txt.zip
  inflating: test/2.txt             

zip压缩以前是什么文件名,压缩以后就是什么文件名,不能改动。强行改动的话,它会先生成一个目录,再把原来的被压缩的文件放进这个目录中。

[root@localhost d6z]# unzip 2.txt.zip -d test/aa.txt
Archive:  2.txt.zip
  inflating: test/aa.txt/2.txt      
[root@localhost d6z]#

zip压缩文件是没法查看的,最多能看压缩文件的文件列表(压缩文件里都有哪些文件)。

[root@localhost d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  aminglinux  aming.zip  test
[root@localhost d6z]# unzip -l aming.zip
Archive:  aming.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
  4399320  01-03-2018 22:48   3.txt
        0  01-05-2018 07:12   aminglinux/
---------                     -------
  4399320                     2 files
[root@localhost d6z]# 

6.6 tar打包

tar是一个打包工具,能够把目录打包成一个文件,它把全部文件整合成一个大文件,方便复制或者移动。该命令格式以下:

tar [-zjxcvfpP] filename tar,它的选项解释以下:

-z:表示同时用gzip压缩

-j:表示同时用bzip2压缩

-J:表示同时用xz压缩

-x:表示解包或者解压缩

-t:表示查看tar包里的文件

-c:表示创建一个tar包或者压缩文件包

-v:表示可视化

-f:后面跟文件名,-f filename,表示压缩后的文件名filename,或者解压文件filename。须要注意的是,若是是多个参数组合的状况下,-f参数写到最后面。

-p:表示使用原文件的属性,压缩前什么属性压缩后还什么属性。(不经常使用)

-P:表示可使用绝对路径(不经常使用)。

--exclude filename:表示在打包或压缩时,不要将filename文件包括在内。(不经常使用)

• tar -cvf 123.tar 123

• tar -cvf aming.tar 1.txt 123

• tar -xvf aming.tar

• tar -tf aming.tar

• tar -cvf aming.tar --exclude 1.txt --exclude 2 123 

打包对文件大小来说,没有太大的变化,也可能有变化。例如说有10000个小于4K的文件,不打包的话就须要10000*4K的空间,若是打包的话,小文件就会填满空间,打包后的文件大小会减少不少。若是文件比较大的话,打包以后文件大小变化就不明显了。

[root@localhost d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt  aminglinux
[root@localhost d6z]# cp 2.txt aminglinux/2/
[root@localhost d6z]# mkdir aminglinux/aming2
[root@localhost d6z]# ls

1.txt.bz2  2.txt  3.txt  4.txt  aminglinux
[root@localhost d6z]# cp -r aminglinux/2 aminglinux/aming2/
[root@localhost d6z]# cd aminglinux/aming2

[root@localhost aming2]# ls
2
[root@localhost aming2]# mkdir aming1
[root@localhost aming2]# cd /tmp/d6z/aminglinux

[root@localhost aminglinux]# ls
2  aming2
[root@localhost aminglinux]# cp -r 2 aming2/aming1/

[root@localhost aminglinux]# cd ..
[root@localhost d6z]# tree aminglinux

aminglinux
├── 2
│   └── 2.txt
└── aming2
    ├── 2
    │   └── 2.txt
    └── aming1
        └── 2
            └── 2.txt

5 directories, 3 files

[root@localhost d6z]# tar -cvf aminglinux.tar aminglinux
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
[root@localhost d6z]#

打包以后,能够再次打包,不加-v选项的话,打包以后的包会覆盖以前的包,不作任何提醒。

[root@localhost d6z]# tar -cf aminglinux.tar aminglinux
[root@localhost d6z]# ls

1.txt.bz2  2.txt  3.txt  4.txt  aminglinux  aminglinux.tar

-xvf选项能够解压包,解压出的文件会替换以前的文件,不像unzip同样解压时还会提示。

[root@localhost d6z]# tar -xvf aminglinux.tar
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
[root@localhost d6z]#

tar不只能够打包目录,也能够打包文件,也能够目录和文件一块儿打包。

[root@localhost d6z]# tar -cvf aminglinux.tar aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt

使用-tf选项能够查看打包文件的文件列表。

[root@localhost d6z]# tar -tf aminglinux.tar
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]#

--exclude选项用于排除文件或者目录。

[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
3.txt
4.txt
[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 --exclude 2.txt aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/aming2/
aminglinux/aming2/2/
3.txt
4.txt
[root@localhost d6z]#

[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 --exclude "*.txt" aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/aming2/
aminglinux/aming2/2/
[root@localhost d6z]# 

6.7 打包并压缩

tar压缩并打包时,gzip压缩用z,bzip2压缩用j,xz压缩用J,打包用c,解压缩或者解包用x便可。

• tar -zcvf 123.tar.gz 123

• tar -zxvf 123.tar.gz

• tar -jcvf 123.bz2  123

• tar -jxvf 123.bz2

• tar -Jcvf 123.xz 123

• tar -Jxvf 123.xz

• tar -tf 123.bz2 / tar -tf 123.gz / tar -tf 123.xz、

tar打包成gzip,解包

tar -z支持gzip压缩。

[root@localhost d6z]# tar -zcvf aminglinux.tar.gz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux.tar.gz
5.8M aminglinux.tar.gz

[root@localhost d6z]# du -sh aminglinux 3.txt 4.txt
13M aminglinux
4.2M 3.txt
4.2M 4.txt

[root@localhost d6z]# tar -zxvf aminglinux.tar.gz
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/4.txt
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/4.txt
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# 

tar打包成bz2

tar -j支持bzip2压缩。

[root@localhost d6z]# tar -jcvf aminglinux.tar.bz2 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux.tar.bz2
5.1M aminglinux.tar.bz2

[root@localhost d6z]# tar -jxvf aminglinux.tar.bz2 
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/4.txt
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/4.txt
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt

tar打包成xz

tar -J支持xz压缩,压缩的越狠,须要的时间越久。

[root@localhost d6z]# tar -Jcvf aminglinux.tar.xz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux.tar.xz
204K aminglinux.tar.xz

[root@localhost d6z]# tar -Jxvf aminglinux.tar.xz
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/4.txt
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/4.txt
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# 

使用-tf选项查看压缩打包文件的文件列表。

[root@localhost d6z]# tar -tf aminglinux.tar.gz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# tar -tf aminglinux.tar.bz2
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# tar -tf aminglinux.tar.xz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]#

友情连接:阿铭Linux

相关文章
相关标签/搜索