前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux学习第二十篇:zip压缩,tar打包以及打包压缩

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

作者头像
用户1215343
发布2018-02-05 17:19:32
2K0
发布2018-02-05 17:19:32
举报
文章被收录于专栏:linux运维学习

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 //查看压缩包里文件的列表

代码语言:javascript
复制
[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可以写多个。

代码语言:javascript
复制
[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 //查看压缩包里的文件

代码语言:javascript
复制
[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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • zip压缩工具
  • tar打包
  • 打包并压缩
  • 扩展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档