zip可以压缩目录,zip压缩包不能直接查看文件内容,只能查看里面文件列表
zip 1.txt.zip 1.txt //压缩文件,不同于之前的压缩工具,zip需要先写出压缩文件后的名字。
zip -r 123.zip 123 //压缩目录,不仅仅压缩目录,而且原来的目录不会删除
unzip 1.txt.zip //解压文件,如若在同一目录下压缩解压时会出现是否覆盖原文件的提示,因为压缩时源文件没有删除。
unzip 123.zip -d /tmp/456/ // 指定解压到/tmp/456目录下,解压时不可以指定为新的名字,会自动生成新的目录。也就是压缩前是什么文件名解压后就是什么名字。
unzip -l 123.zip //查看压缩包里文件的列表
[root@xie-02 zzz]# du -sh 1.txt
1.4M 1.txt
[root@xie-02 zzz]# zip 1.txt.zip 1.txt //压缩文件,源文件1.txt不会删除
adding: 1.txt (deflated 74%)
[root@xie-02 zzz]# du -sh 1.txt.zip
360K 1.txt.zip
[root@xie-02 zzz]# du -sh 123
1.4M 123
[root@xie-02 zzz]# zip -r 123.zip 123 //压缩目录
adding: 123/ (stored 0%)
adding: 123/2.txt (deflated 74%)
[root@xie-02 zzz]# du -sh 123.zip
360K 123.zip
[root@xie-02 zzz]# unzip 1.txt.zip //解压文件,在同一目录下压缩解压时会提示是否覆盖,A是全部覆盖
Archive: 1.txt.zip
replace 1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: 1.txt
[root@xie-02 zzz]# unzip -l 123.zip //查看压缩包里文件列表
Archive: 123.zip
Length Date Time Name
--------- ---------- ----- ----
0 11-07-2017 13:12 123/
1391450 11-07-2017 13:12 123/2.txt
--------- -------
1391450 2 files
tar 本身为一个打包工具,可以把目录打包成一个文件,它的好处是它把所有文件整合成一个大文件整体,方便拷贝或者移动。
-z : 同时用gzip压缩
-j : 同时用bzip2压缩
-x : 解包或者解压缩
-t : 查看tar包里面的文件
-c : 建立一个tar包或者压缩文件包
-v : 可视化
-f : 后面跟文件名,压缩时跟 “-f 文件名”,意思是压缩后的文件名为filename, 解压时跟 “-f 文件名”,意思是解压filename. 请注意,如果是多个参数组合的情况下带有 “-f”,请把 “-f” 写到最后面。
-p : 使用原文件的属性,压缩前什么属性压缩后还什么属性。
-P : 可以使用绝对路径。(不常用)
–exclude filename : 在打包或者压缩时,不要将filename文件包括在内。
tar -cvf 123.tar 123 //可视化打包压缩目录123后名字为123.tar
tar -cvf 123.tar 1.txt 123 //可视化打包压缩目录123和文件1.txt后名字为123.tar
tar -xvf 123.tar //可视化解包123.tar,解包时跟zip一样会覆盖原来的文件,但是不会提示是否覆盖。
tar -tf 123.tar //查看tar包里面的文件
tar -cvf 123.tar –exclude 1.txt –exclude 2 123 //打包目录123并命名123.tar,不包括文件1.txt和目录2。exclude可以写多个。
[root@xie-02 zzz]# tar -cvf 123.tar 123 //可视化打包压缩后名字为123.tar
123/
123/2.txt
[root@xie-02 zzz]# ls
123 123.tar 1.txt 2.txt
[root@xie-02 zzz]# du -sh 123 123.tar //打包后大小跟源文件一样,打包是打包,不同于压缩,区分清楚。
1.4M 123
1.4M 123.tar
[root@xie-02 zzz]# tar xvf 123.tar //解包时跟zip一样会覆盖原来的文件,但是不会提示是否覆盖。
123/
123/2.txt
[root@xie-02 zzz]# tar -tf 123.tar //查看tar包里面的文件
123/
123/2.txt
tar命令非常好用的一个功能就是可以在打包的时候直接压缩,它支持gzip压缩,xz压缩和bzip2压缩。
tar -zcvf 123.tar.gz 123 //打包的同时使用gzip压缩
tar -zxvf 123.tar.gz //解包并解压缩
tar -jcvf 123.bz2 123 //打包的同时使用bzip2压缩
tar -jxvf 123.bz2 //解包并解压缩
tar -Jcvf 123.xz 123 //打包的同时使用xz压缩
tar -Jxvf 123.xz //解包并解压缩
tar -tf 123.bz2 //查看压缩包里的文件 tar -tf 123.gz //查看压缩包里的文件 tar -tf 123.xz //查看压缩包里的文件
[root@xie-02 zzz]# tar -zcvf 123.tar.gz 123 1.txt 2.txt //打包的同时使用gzip压缩
123/
123/2.txt
1.txt
2.txt
[root@xie-02 zzz]# du -sh 123.tar.gz
1.1M 123.tar.gz
[root@xie-02 zzz]# tar -jcvf 123.tar.bz2 123 1.txt 2.txt //打包的同时使用bzip2压缩
123/
123/2.txt
1.txt
2.txt
[root@xie-02 zzz]# du -sh 123.tar.bz2
460K 123.tar.bz2
[root@xie-02 zzz]# tar -Jcvf 123.tar.xz 123 1.txt 2.txt //打包的同时使用xz压缩
123/
123/2.txt
1.txt
2.txt
[root@xie-02 zzz]# du -sh 123.tar.xz
68K 123.tar.xz
[root@xie-02 zzz]# tar -tf 123.tar.xz //查看压缩包里的文件
123/
123/2.txt
1.txt
2.txt
实际应用:
利用tar 通过网络拷贝数据 http://www.lishiming.net/thread-152-1-2.html Tar打包、压缩与解压缩到指定目录的方法 http://www.lishiming.net/thread-96-1-3.html linux下不支持解压大于4G的zip压缩包 http://www.lishiming.net/thread-1813-1-1.html