Linux压缩打包day15
2019-08-13 本文已影响0人
静如止水yw
1.文件打包与压缩
2.gzip打包与压缩
3.zip打包与压缩
4.tar打包与压缩
一、文件打包与压缩
1.什么是文件压缩
文件压缩就是指将多个文件或目录合并成为一个特殊的文件。
2.为什么要对文件进行压缩
- 减小文件的体积
- 加快资源的传输
- 节省网络的带宽
3.Windows的压缩包与Linux的压缩包能否互通
- Windows:rar zip其实支持很多类型的压缩
- Linux:zip tar.gz
- Windows与Linux互通常用的是zip
4.Linux下压缩包有哪些常见的类型
格式 | 压缩工具 |
---|---|
.zip | zip压缩工具 |
.gz | gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.bz2 | bzip2压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.tar.gz | 先使用tar命令归档打包,然后使用gzip压缩 |
.tar.bz2 | 先使用tar命令归档打包,然后使用bzip压缩 |
二、gzip打包与压缩
- 1)gzip打包与压缩,仅对文件有效
gzip filename 打包
gzip -d filename.gz 解包
zcat filname.gz 查看包内文件的内容
# 使用场景:当需要让某个文件快速关闭和快速启用.
[root@wyw ~]# gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz
[root@wyw ~]# zcat CentOS-Vault.repo.gz --> 查 看不想解压的压
三、zip打包与压缩
默认情况下没有zip和unzip工具,需要进行安装
[root@wyw ~]# yum install zip unzip -y
# 1.压缩文件为zip包
使用方法:zip filename.zip filename 压缩包
unzip -l filename.zip 查看包内容
# 2.压缩目录为zip包
zip -r dir.zip dir/ -r 递归
# 3.查看zip压缩包是完整的
zip -T filename.zip
test of filename.zip OK
# 4.不解压压缩查看压缩包中的内容
unzip -l filename.zip
unzip -t filename.zip 检测文件是否都OK
# 5.解压zip文件包,默认解压至当前目录
unzip filename.zip
# 解压zip内容至/tmp /opt等目录下
unzip filename.zip -d /opt/
# 7.打包
zip -r 、/tmp/test.zip file dir/
# 8. 解包
unzip tt.zip
unzip tt.zip -d 、/opt
四、tar打包与压缩
tar是Linux下最常用的压缩与解压缩,支持文件和目录的压缩与归档
- tar的基本语法
tar [-zjxvcfpP] filename
c 创建新的归档文件
x 对归档文件解包
t 列出归档文件里的文件列表
v 输出命令的归档或解包的过程
f 指定包文件名,多参数f写最后
z 使用gzip压缩归档后的文件(.tar.gz)
j 使用bzip2压缩归档后的文件(.tar.bz2)
J 使用xz归档后的文件(tar。xz)
X 排除多个文件(写入需要排除的文件名称)
h 打包软链接
--hard-dereference 打包硬链接
--exclude 在打包的时候写入需要排除文件或目录
# 常用打包与压缩组合
czf 打包tar.gz格式
cjf 打包tar.bz格式
cJf 打包tar.xz格式
zxf 解压tar.gz格式
jxf 解压tar.bz格式
xf 自动选择解压模式
tf 查看压缩包内容
- 1)将文件或目录进行打包压缩
1.以gzip归档方式打包并压缩
[root@wyw ~]# tar czf test.tar.gz test/ test1/
2.以bz2方式压缩
[root@wyw ~]# tar cjf test.tar.bz2 fir.txt dir/
3.打包连接文件,打包链接文件的真实文件
[root@wyw ~]# cd /
[root@wyw /]# tar czfh local1.tar.gz etc/rc.local
4.打包/tmp下所有文件
[root@wyw ~]# cd /
[root@wyw /]# find tmp/ -type f | xargs tar czf tmp.tar.gz ——第一种方法
[root@wyw /]# tar czf tmp.tar.gz $(find /tmp/ -type f) ——第二种方法
- 2)排除文件,并打包压缩
1.排除单个文件
[root@wyw /]# tar czf etc.tar.gz --exclude=etc/services etc/
2.排除多个文件
[root@wyw /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
3.将需要排除的文件写入文件中
[root@wyw /]# echo /etc/services etc/rc.local etc/rc.d/rc.local >>pc.list
[root@wyw /]# cat pc.list
/etc/services
etc/rc.local
etc/rc.d/rc.local
指定需要排除的文件列表,最后进行打包压缩
[root@wyw /]# tar czfX etc.tar.gz pc.list etc/
- 3)查看压缩文件
查看压缩包内容和解压
[root@wyw /]# tar tf etc.tar.gz
- 4)解压缩文件
1.解压至当前目录
[root@wyw /]# tar xf etc.tar.gz
2.将解压内容存储至指定的/tmp目录
[root@wyw ~]# tar xf /etc.tar.gz -C /tmp
- 5)tar命令练习
下载mariadb-server,创建环境准备
[root@wyw tmp]# yum install mariadb-server -y
[root@wyw tmp]# systemctl start mariadb
[root@wyw tmp]# mkdir /backup
例1:mysql备份及恢复
[root@wyw tmp]# tar cJf /backup/myaql.tar.xz /var/lib/mysql
[root@wyw tmp]# tar xf /backup/myaql.tar.xz -C /tmp
例2:mysql备份及恢复
[root@wyw ~]# cd /var/lib/mysql/
[root@wyw mysql]# tar cJf /backup/myaql.tar.xz *
[root@wyw mysql]# tar tf /backup/myaql.tar.xz
[root@wyw mysql]# tar xf /backup/myaql.tar.xz -C /var/lib/mysql/