设为首页 收藏本站
查看: 269|回复: 0

[经验分享] linux下压缩工具总结与使用(参考私房菜)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-14 08:25:38 | 显示全部楼层 |阅读模式
1 压缩

gzip命令
options:
-c  数据流重定向,可以定位为文件
-r  递归压缩,即深入子目录
-v  显示姓名和压缩比等冗余信息
-d  解压缩
-#  加上的数字表示压缩等级,越高表示压缩比越高,但更慢

①做了一个很简单的实验
1
2
3
4
5
6
7
8
9
10
11
[iyunv@mail tmp]# ll -h
total 128K
-rw-r--r--. 1 root root 128K Jun 27 03:00 test
[iyunv@mail tmp]# gzip -v -9 test
test:    99.9% -- replaced with test.gz
[iyunv@mail tmp]# ll -h
total 4.0K
-rw-r--r--. 1 root root 166 Jun 27 03:00 test.gz
[iyunv@mail tmp]# gzip -d test.gz
[iyunv@mail tmp]# gzip -v -1 test
test:    99.6% -- replaced with test.gz



②如何保留原文件?
一种方案我觉得很好用,上面的-c命令

1
2
3
4
5
[iyunv@mail tmp]# gzip -c test > test.gz
[iyunv@mail tmp]# ll
total 132
-rw-r--r--. 1 root root 131072 Jun 27 03:00 test
-rw-r--r--. 1 root root    166 Jun 27 03:03 test.gz



④利用zcat可以直接读压缩文件,前提是cat可以读取原文件,所以叫zcat ==
1
2
[iyunv@mail tmp]# zcat test1.sh.gz
this is a test.





bzip2命令
据说比zip有更好的压缩比,命令行使用,建议使用差不多的子选项
做了个简单小实验

1
2
3
4
[iyunv@mail tmp]# gzip -9 -v -c test >test.gz
test:    99.9%
[iyunv@mail tmp]# bzip2 -9 -v -c test >test.bz2
  test:    2978.909:1,  0.003 bits/byte, 99.97% saved, 131072 in, 44 out.




果不其然,其他用法相似,不建议继续尝试了
bzcat也一样
1
2
[iyunv@mail tmp]# bzcat test1.sh.bz2
this is a test.




下面看看如何打包和压缩解压缩包吧
tar命令
网上有一段讲的很好,这里摘下来

参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!这样对配置文件很方便,一般备份/etc最好使用-p
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
-C 目录   指定解压的目录
基本上常用的都已经说明
注意如下几点

1 tar实用的时候考虑,一般当然是压缩的,那么考虑是用zip还是bzip,zip就使用z,bzip用j,解压同理
2 -f后面接文件,所以f紧接着要创建的压缩文件的,最后接上要压缩的源文件

下面继续做咱的小实验
①打包tmp的除了test的所有文件到/root/backup/目录下,使用bzip2压缩
1
2
3
4
5
6
[iyunv@mail tmp]# tar -jcvf /root/backup/tmp.bz2  /tmp --exclude test
tar: Removing leading `/' from member names
/tmp/
/tmp/test.bz2
/tmp/test.gz
/tmp/test1.sh.bz2



②此时要求保留文件属性,把/etc/my.cnf压缩至/root/backup/目录下,名称问my.bak
1
2
3
[iyunv@mail tmp]# tar -jcvpf /root/backup/my.bak /etc/my.cnf
tar: Removing leading `/' from member names
/etc/my.cnf



③在root家目录下,把晚于2015年7月11日的文件备份,命名为2015.7.11.bak
1
[iyunv@mail ~]# tar -jcvp -f /root/backup/2015.7.11.bak  /root -N 20150711



④在③压缩文件中添加一个文件/tmp/test,并查看

1
2
3
[iyunv@mail ~]# tar -rf  /root/backup/2015.7.11.bak.tar  /tmp/test
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now



追加了半天,发现这个错误,才意识到,是我已经压缩了才这样,所以最好的办法是重新压缩,当然对于一个tar包添加再压缩也可以
1
2
[iyunv@mail ~]# tar -jcvpf  /root/backup/2015.7.11.bak  /tmp/test  /root -N 20150711
[iyunv@mail ~]# tar -tvf /root/backup/2015.7.11.bak



或者这样
1
2
3
4
5
6
7
[iyunv@mail ~]# tar -cf /root/backup/2015.7.11.bak /root
[iyunv@mail ~]# tar -rvf /root/backup/2015.7.11.bak /tmp/test
tar: Removing leading `/' from member names
/tmp/test
[iyunv@mail ~]# tar -tvf /root/backup/2015.7.11.bak
...
-rw-r--r-- root/root    131072 2015-06-27 04:27 tmp/test




总之,其他的还是自己以后慢慢使用吧,当然,前面也可以不适用-,如tar xf,这是另一种风格,巨日我也忘了


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86392-1-1.html 上篇帖子: Linux crontab定时执行任务 命令格式 下篇帖子: CentOS 6.4安装配置ldap linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表