linux学习第二十篇:zip压缩,tar打包以及打包压缩

时间:2022-04-26
本文章向大家介绍linux学习第二十篇:zip压缩,tar打包以及打包压缩,主要内容包括zip压缩工具、tar打包、打包并压缩、扩展、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

zip压缩工具

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

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

扩展

http://ask.apelearn.com/question/5435