一、 压缩打包介绍
常见压缩文件
windows .rar .zip .7z
linux: .rar .zip .gz .bz2 .xz .tar.gz .tar.bz2 .tar.xz
二、 gzip压缩工具
gzip压缩文件:
gzip 只能压缩文件不能压缩目录.**gzip 1.txt 压缩完成原文件删除**生成1.txt文件:
find /etc/ -type f -name "*.conf" -exec cat {} >> /tmp/fxq/1.txt \;
# ls -lh /tmp/fxq/1.txt -rw-r--r-- 1 root root 2.3M Aug 23 22:01 /tmp/fxq/1.txt
1. gzip压缩文件
# gzip /tmp/fxq/1.txt# ls -lhtotal 620K
-rw-r--r-- 1 root root 610K Aug 23 22:01 1.txt.gz
2. gzip解压缩
unzip 1.txt.gzgzip -d 1.txt.gz
# gzip -d 1.txt.gz # ll -htotal 2.3M
-rw-r--r-- 1 root root 2.3M Aug 23 22:01 1.txt
3. gzip指定压缩级别:
默认是6级别# gzip -9 1.txt
4. zcat查看文件内容
# zcat 1.txt.gz
5. gzip压缩后不删除原文件
# gzip -c 1.txt > /tmp/1.txt.gz
6. gzip压缩后必名并指定路径存放
# gzip -d -c /tmp/1.txt.gz > /tmp/2.txt.gz
7. gunzip解压缩后改名并指定路径存放
# gunzip -d -c /tmp/2.txt.gz > /tmp/fxq/3.txt
三、 bzip2压缩工具
bzip2 比gzip 压缩能力更强
# ll -hltotal 292K
-rw-r--r-- 1 root root 281K Aug 23 22:01 1.txt.bz2
1. bzip2压缩文件不删除原文件
# bzip2 1.txt
2. bzip2压缩文件不删除原文件
# bzip2 -c 1.txt > /tmp/1.txt.bz2
3. bunzip2解压文件到指定路径:
# bunzip2 -d -c /tmp/1.txt.bz2 > 3.txt
4. bzip2压缩级别:
# bzip2 -9 1.txt默认压缩级别9.
5. bzcat查看文件内容
# bzcat 1.txt.bz2
# file 2.txt 查看文件类型。
四、 xz压缩工具
xz压缩能力比gzip和bzip2都要强。使用方法基本上和gzip一样.
1. xz压缩文件
# xz 1.txt
2. xz压缩级别:
# xz -9 1.txt默认压缩级别9.
3. xz压缩不删除原文件
# xz -d 2.txt.xz
4. unxz解压缩文件
# unxz 2.txt.xz
5. xz保留原文件,解压到指定路径
3&nbsx;8z -c 2.txt /tmp/2.txt.xz
6. xz查看文件内容
# xzcat 1.txt.xz
五、zip压缩工具
1压缩后不删除原文件
zip 1.txt.zip 1.txtzip -r selinux.zip selinux/
[iyunv@0 fxq]# ls1.txt selinux selinux.zip
[iyunv@0 fxq]# zip 1.txt.zip 1.txt
adding: 1.txt (stored 0%)
[iyunv@0 fxq]# ls1.txt 1.txt.zip selinux selinux.zip
[iyunv@0 fxq]#
[iyunv@0 fxq]# lsselinux
[iyunv@0 fxq]# zip selinux.zip selinux/
adding: selinux/ (stored 0%)
[iyunv@0 fxq]# lsselinux selinux.zip
2 解压缩文件:
unzip dir.zip
[iyunv@0 fxq]# lsselinux
[iyunv@0 fxq]# zip selinux.zip selinux/
adding: selinux/ (stored 0%)
[iyunv@0 fxq]# lsselinux selinux.zip
[iyunv@0 fxq]# rm -rf selinux[iyunv@0 fxq]# lsselinux.zip
[iyunv@0 fxq]# unzip selinux.zip Archive: selinux.zip
creating: selinux/
[iyunv@0 fxq]# lsselinux selinux.zip
[iyunv@0 fxq]#
3 zip解压到指定目录:
unzip dir.zip -d /root/
4 查看压缩包内的文件列表
unzip -l dir.zip
六、 tar打包
tar打包工具:
1tar打包
# tar -cvf selinux.tar selinux
2tar 解包(文件存在时不提示覆盖)
# tar -xvf selinux.tar
3tar 查看打包内的文件列表
# tar -tf selinux.tar
4打包时过滤部分目录或文件
# tar -cvf all.tar --exclude semanage.conf.bak selinux/
[iyunv@0 fxq]# tree selinuxselinux
|-- semanage.conf.bak
`-- targeted
`-- setrans.conf.bak1 directory, 2 files
[iyunv@0 fxq]# [iyunv@0 fxq]# tar -cvf all.tar --exclude semanage.conf.bak selinuxselinux/
selinux/targeted/
selinux/targeted/setrans.conf.bak
[iyunv@0 fxq]# ls1.txt.bz2.xz all.tar selinux selinux.zip
[iyunv@0 fxq]# tar -tf all.tar selinux/
selinux/targeted/
selinux/targeted/setrans.conf.bak
[iyunv@0 fxq]#
七、tar 打包并压缩
(1) tar打包成.gz文件:
# tar -czvf selinux.tar.gz selinux
[iyunv@0 fxq]# ls1.txt.bz2.xz all.tar selinux selinux.zip[iyunv@0 fxq]# tar -czvf selinux.tar.gz selinuxselinux/selinux/semanage.conf.bakselinux/targeted/selinux/targeted/setrans.conf.bak[iyunv@0 fxq]# ls1.txt.bz2.xz all.tar selinux selinux.tar.gz selinux.zip
(2) tar打包成.bz2文件:
# tar -cjvf selinux.tar.bz2 selinux[iyunv@0 fxq]# tar -cjvf selinux.tar.bz2 selinuxselinux/selinux/semanage.conf.bakselinux/targeted/selinux/targeted/setrans.conf.bakYou have new mail in /var/spool/mail/root
[iyunv@0 fxq]# ls1.txt.bz2.xz selinux selinux.tar.gzall.tar selinux.tar.bz2 selinux.zip
(3) tar打包成.xz文件:
# tar -cJvf selinux.tar.xz selinux
[iyunv@0 fxq]# tar -cJvf selinux.tar.xz selinuxselinux/
selinux/semanage.conf.bak
selinux/targeted/
selinux/targeted/setrans.conf.bak
[iyunv@0 fxq]# ls 1.txt.bz2.xz selinux selinux.tar.gz selinux.zip
all.tar selinux.tar.bz2 selinux.tar.xz
[iyunv@0 fxq]# lltotal 316-rw-r--r-- 1 root root 285092 Aug 23 22:01 1.txt.bz2.xz
-rw-r--r-- 1 root root 10240 Aug 24 22:55 all.tar
drwxr-xr-x 3 root root 4096 Aug 14 21:43 selinux
-rw-r--r-- 1 root root 1736 Aug 24 23:01 selinux.tar.bz2
-rw-r--r-- 1 root root 1689 Aug 24 23:00 selinux.tar.gz
-rw-r--r-- 1 root root 1728 Aug 24 23:01 selinux.tar.xz
-rw-r--r-- 1 root root 166 Aug 24 22:35 selinux.zip
(4) tar查看压缩包内文件列表:
# tar -tf selinux.tar.xz
[iyunv@0 fxq]# tar -tf selinux.tar.xzselinux/selinux/semanage.conf.bakselinux/targeted/selinux/targeted/setrans.conf.bak[iyunv@0 fxq]#
八、测试题
1. gzip, bzip2 能否直接压缩目录呢
2. 请快速写出使用gzip和bzip2压缩和解压一个文件的命令。
3. tar 在打包的时候如果想排除多个文件或者目录如何操作
4. 请实验如果不加 "-" 是否正确 如 tar zcvf 1.tar.gz 1.txt 2.txt ?
5. 如何使用tar打包和解包 .tar.gz, .tar.bz2 的压缩包
6. 找一个大点的文件使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包比较一下哪个包会更小从而得出结论是gzip压缩效果好还是bzip2压缩效果好
7. 使用tar打包并压缩的时候默认压缩级别为几 想一想如何能够改变压缩级别呢提示tar本身没有这个功能哦可以尝试拆分打包和压缩
1.不能
2.gzip 1.txt.gz 1.txt
ungzip 1.txt.gz
gzip -c 1.txt.gz
bzip2 1.txt.bz2 1.txt
bunzip2 1.txt.bz23.tar -czvf all.tar.gz --exclude 1.txt --exclude 2.txt ./*
4.可以不加-
5.tar -zcvf all.tar.gz all/
tar -zxvf all.tar.gz
tar -jcvf all.tar.bz2 all/
tar -jxvf all.tar.bz2
6.bz2比gz压缩强:
[iyunv@0 fxq]# ll
total 2316
-rw-r--r-- 1 root root 2362256 Aug 24 23:29 1.txt
drwxr-xr-x 2 root root 4096 Aug 14 21:43 selinux
[iyunv@0 fxq]# tar -zcvf 1.txt.tar.gz 1.txt
1.txt
[iyunv@0 fxq]# tar -jcvf 1.txt.tar.bz2 1.txt
1.txt
[iyunv@0 fxq]# ll
total 3220
-rw-r--r-- 1 root root 2362256 Aug 24 23:29 1.txt
-rw-r--r-- 1 root root 288262 Aug 24 23:30 1.txt.tar.bz2
-rw-r--r-- 1 root root 624127 Aug 24 23:29 1.txt.tar.gz
drwxr-xr-x 2 root root 4096 Aug 14 21:43 selinux
[iyunv@0 fxq]#
7.
习题答案
1. gzip, bzip2 能否直接压缩目录呢
不能直接压缩目录
2. 请快速写出使用gzip和bzip2压缩和解压一个文件的命令。
gzip 1.txt
gzip -d 1.txt.gz
bzip2 1.txt
bzip2 -d 1.txt.bz2
3. tar 在打包的时候如果想排除多个文件或者目录如何操作
tar cvf 123.tar --exclude a.txt --exclude b.txt 123/
4. 请实验如果不加 "-" 是否正确 如 tar zcvf 1.tar.gz 1.txt 2.txt ?
不加 - 一样没有问题
5. 如何使用tar打包和解包 .tar.gz, .tar.bz2 的压缩包
tar zcvf 1.tar.gz 1
tar zxvf 1.tar.gz
tar jcvf 1.tar.bz2 1
tar jxvf 1.tar.bz2
6. 找一个大点的文件使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包比较一下哪个包会更小从而得出结论是gzip压缩效果好还是bzip2压缩效果好
理论上.tar.bz2的压缩包小一些但个别时候有相反的情况。但大多时候bzip2压缩效果好。
7. 使用tar打包并压缩的时候默认压缩级别为几 想一想如何能够改变压缩级别呢提示tar本身没有这个功能哦可以尝试拆分打包和压缩
tar打包压缩时是按照gzip和bzip2的默认压缩级别来的gzip工具默认压缩级别为6bzip2默认压缩级别为9.
改变默认压缩级别可以这样来做首先tar打包然后再使用gzip或者bzip2压缩工具来压缩压缩的时候指定压缩级别。如 tar cvf 1.tar 123/; gzip -2 1.tar
九、知识拓展
1利用tar 通过网络拷贝数据
实现不同机器间传输文件自动打包解包。
[iyunv@fxq-0 ~]# mkdir test{1..10}
[iyunv@fxq-0 ~]# ls
anaconda-ks.cfg test1 test2 test4 test6 test8
test0 test10 test3 test5 test7 test9
[iyunv@fxq-0 ~]#&nbst;
tgsd0/
test1/
test10/
test2/
test3/
test4/
test5/
test6/
test7/
test8/
test9/
test0/
test1/
test10/
test2/
test3/
test4/
test5/
test6/
test7/
test8/
test9/
[iyunv@fxq-0 ~]# ssh 192.168.42.181
Last login: Thu Aug 17 04:20:20 2017 from 192.168.42.180
[iyunv@fxq-1 ~]# ls /tmp
test0 test10 test3 test5 test7 test9
test1 test2 test4 test6 test8
[iyunv@fxq-1 ~]#
2Tar打包、压缩与解压缩到指定目录的方法
解压到指定的目录 :-C加目录
[iyunv@fxq ~]# tar -zxvf /home/images.tar.gz -C /specific dir
3linux下不支持解压大于4G的zip压缩包
1.下载
wget 2.安装
rpm -ivh p7zip-16.02-2.el7.x86_64.rpm
3.解压命令大于4G文件
# 7z x 123.zip
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com