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 -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 -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 -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