一、什么是文件压缩
二、文件压缩的意义
- 压缩使 文件按照百分比减小
- 提高文件的传输速率
- 节省网络资源(宽带)
三、Windows和Linux压缩包类型相同和不同
1)不同点
- Windows一般是zip和rar
- Linux一般使用:zip、tar.gz
2)相同点
- 相互通用的的压缩有:zip ,一般Linux中压缩的可以在Windows中打开
1、Linux中常见的压缩类型
格式 |
压缩工具及运用 |
.zip |
zip压缩工具,压缩后不会删除原文件。 |
.gz |
gzip压缩工具,只能压缩文件,压缩后会删除原文件,(通常配合tar使用) |
.bz2 |
bzip2压缩工具,只能压缩文件,压缩后会删除原文件 |
.tar.gz |
先使用tar命令归档打包,然后使用gzip压缩 |
.tar.gz2 |
先使用tar命令归档打包,然后使用gzip压缩 |
2、gzip的压缩方式——只能对文件压缩并删除原文件
1)查看压缩后的文件:zcat
2)gzip -d 解压压缩包
3)使用场景
- 当需要让某个文件在系统中不生效时,我们可以用gzip将其压缩。
1、对文件进行压缩
[root@oldboy ~]# gzip cuixinpeng.txt
[root@oldboy ~]# ls
cuixinpeng.txt.gz
2、查看压缩包的文件 zcat
[root@oldboy ~]# zcat cuixinpeng.txt.gz
3、解压压缩包
[root@oldboy ~]# gzip -d cuixinpeng.txt.gz
[root@oldboy ~]# ls
cuixinpeng.txt
2、zip的压缩方式——不会删除原文件
1)使用方法:zip + 压缩包名称(.zip) + 压缩的文件
2)zip压缩包的递归参数: -r (打包目录)
3)unzip解压, -d 指定解压到哪个目录
unzip +解压包 + -d +解压到的哪个目录
4)-T 查看zip压缩包是否是完整的 (zip + -T + 压缩包)
5)-l 不解压压缩查看压缩包中的内容(unzip + -l + 压缩包)
6)-t 检测压缩的文件是否都ok (unzip + -t + 压缩包)
1、用zip压缩文件
[root@oldboy ~]# zip cui.zip cuixinpeng.txt
adding: cuixinpeng.txt (stored 0%)
[root@oldboy ~]# ls
cuixinpeng.txt cui.zip
2、利用 -r 递归将目录下面的文件一并打包压缩
[root@oldboy ~]# zip -r heh.zip /var/log/
adding: var/log/ (stored 0%)
adding: var/log/tallylog (stored 0%)
adding: var/log/audit/ (stored 0%)
adding: var/log/vmware-vgauthsvc.log.0 (deflated 93%)
adding: var/log/vmware-vmsvc.log (deflated 90%)
adding: var/log/firewalld (stored 0%)
adding: var/log/yum.log (deflated 62%)
adding: var/log/vmware-network.6.log (deflated 64%)
[root@oldboy ~]# ls
heh.zip
3、用unzip解压压缩包 unzip
[root@oldboy ~]# unzip heh.zip
[root@oldboy ~]# ls
heh.zip var
4、unzip -d解压到指定的路径
[root@oldboy ~]# unzip heh.zip -d /tmp/
[root@oldboy ~]# ls /tmp/var/log/
5、查看zip压缩包是否是完整的
[root@oldboy ~]# zip -T heh.zip
test of filename.zip OK
6、不解压压缩查看压缩包中的内容
[root@oldboy ~]# unzip -l heh.zip
7、检测文件是否都ok
[root@oldboy ~]# unzip -t heh.zip
- 解压时注意:解压时有可能会覆盖已经有的文件,所以尽可能找一个空的目录解压,然后移动到指定目录
3、tar.gz格式压缩包——tar打包,gzip进行压缩
1)参数:
符号 |
含义 |
c |
创建新的文件归档 |
x |
对归档的文件进行解包 |
t |
列出归档文件中的文件列表 |
v |
输出命令的归档或者解包过程 |
f |
指定包文件名,多参数f写最后 |
z |
使用gzip压缩归档文件(文件类型为 .tar.gz) |
j |
使用bzip2压缩归档后的文件(文件类型为 .tar.bz2) |
J |
使用xz压缩归档后的文件(文件类型为 tar.xz) |
C |
指定解压到目录位置 |
X |
排除多个文件(写入需要排除的文件名称) |
h |
打包时将软链接 同时打包 |
--exclude |
在打包的时候写入需要排除文件或目录 |
2)常用的压缩包类型
符号 |
含义 |
czf |
打包tar.gz格式 |
tf |
查看压缩包内容 |
xf |
自动选择解压模式 |
很少用到的类型
cjf 打包tar.bz格式
zxf 解压tar.gz格式
jxf 解压tar.bz格式
cJf 打包tar.xz格式
3)应用
1、利用以 gzip 方式压缩 和以 bz2 方式压缩
[root@oldboy ~]# tar czf wode.tar.gz cui.txt var/
[root@oldboy ~]# tar cjf wode.tar.bz2 cui.txt var/
[root@oldboy ~]# ls
cui.txt heh.zip var wode.tar.gz wode.tar.bz2
2、查看压缩的文件
[root@oldboy ~]# tar tf wode.tar.gz
cui.txt
var/
var/log/
var/log/tallylog
var/log/grubby_prune_debug
var/log/lastlog
var/log/wtmp
var/log/btmp
3、解压压缩的文件
[root@oldboy ~]# tar xf wode.tar.gz
4、解压压缩包至指定目录
[root@oldboy ~]# tar xf wode.tar.gz -C /tmp/
4)压缩文件或者目录时排除部分文件,命令:--exclude
1、利用--exclude排除
[root@oldboy ~]# tar czf etc.tar.gz /etc/ --exclude=etc/services
[root@oldboy ~]# tar czf etc.tar.gz /etc/ --exclude=etc/passwd -exclude=etc/shadow
2、将需要排除的文件写入文件中,然后排除
[root@oldboy ~]# vim pc.txt
etc/gshadow
etc/gshadow
etc/passwd
etc/passwd
etc/shadow
etc/shadow
etc/security/opasswd
etc/pam.d/passwd
[root@oldboy ~]# cat pc.txt
etc/gshadow
etc/gshadow
etc/passwd
etc/passwd
etc/shadow
etc/shadow
etc/security/opasswd
etc/pam.d/passwd
[root@oldboy ~]# tar czXf pc.txt etc.tar.gz /etc/
5)例题:文件的备份和恢复
1.环境准备
[root@oldboy ~]# yum install mariadb-server
[root@oldboy ~]# systemctl start mariadb
[root@oldboy ~]# mkdir /backup
例1.mysql备份及恢复
[root@oldboy ~]# tar cJf /backup/mysql.tar.xz /var/lib/mysql
[root@oldboy ~]# tar xf /backup/mysql.tar.xz -C /
例2 mysql备份及恢复
[root@oldboy ~]# cd /var/lib/mysql
[root@oldboy mysql]# tar cJf /backup/mysql.tar.xz *
[root@oldboy mysql]# tar tf /backup/mysql.tar.xz
[root@oldboy mysql]# tar xf /backup/mysql.tar.xz C /var/lib/mysql
总结
今天主要学习了文件的怎样压缩,以及压缩的不同方式,我们在不同的环境与条件下选择不同的压缩方式。学了很多关于压缩的参数与选项。最后还学了一个怎样备份恢复文件。