day15----linux文件管理之文件压缩

day15----文件的压缩与解压缩

1.什么是压缩

  • 将多个文件或目录合并成一个特殊的文件

2.为什么要对文件进行压缩

  • 减小文件体积
  • 加快资源的传输
  • 节省网络的带宽

3.Windows的压缩包与Linux的压缩包能否互通

  • Windows:rar zip 支持很多类型的压缩
  • linux:zip tar.gz
  • Linux与Windows互通建议使用zip

4.Linux下压缩包有哪些常见的类型

格式压缩工具
.zipzip压缩工具
.gzgzip压缩工具,会删除原文件(通常配合tar使用)
.bz2bzip压缩工具,只能压缩文件,会删除原文件夹(通常配合tar使用)
.tar.gz先使用tar命令归档打包,然后使用zip压缩
.tar.gz2先使用tar命令归档打包,然后使用bzip压缩

5.Linux gzip zip tar 工具的使用

1)gzip 打包与压缩仅对文件有效

  • gzip filename 压缩
  • gzip -d filename.gz 解包
  • zcat file 查看压缩包内文件的内容
    示例:
[root@oldboy--day01 ~]#yum install gzip -y   #安装gzip工具
[root@oldboy--day01 ~]# gzip 1.txt           #在当前目录下压缩文件1.txt
[root@oldboy--day01 ~]# zcat 1.txt.gz        #查看压缩文件1.txtx.gz
[root@oldboy--day01 ~]# gzip -d 1.txt.gz     #解压gzip的压缩包

使用场景:当需要让某个文件快速关闭和快速启用

2)Linux zip压缩工具使用

  • 默认情况下Linux没有zip和unzip工具,需要自行安装
[root@oldboy--day01 ~]# yum install zip unzip -y #安装zip和unzip工具
  • 压缩文件为zip压缩包
[root@oldboy--day01 ~]# zip 2.txt.zip 2.txt    #打包方式为:zip 打包后的文件名 需要打包的文件
[root@oldboy--day01 ~]# unzip -l 2.txt.zip     #查看打包后的文件内容
  • 压缩目录为zip压缩包
[root@oldboy--day01 ~]# zip -r dir.zip dir/   #打包目录为压缩文件包压缩包名称为dir.zip
  • 查看zip压缩包是否完整
[root@oldboy--day01 ~]# zip -T filename.zip   #查看压缩包文件是否打包完整
  • 不解压压缩查看压缩包中的内容
[root@oldboy--day01 ~]# unzip -l 2.txt.zip #查看压缩后的文件知是完整
[root@oldboy--day01 ~]# unzip -t 2.txt.zip #检测文件打包后是否打包成功
  • 解压zip文件包,默认解压至当前目录
[root@oldboy--day01 ~]# unzip 2.txt.zip       #解压文件,默认解压至当前目录
  • 解压zip内容至/opt目录
[root@oldboy--day01 ~]# unzip 2.txt.zip -d  /opt/         #解压2.txt.zip至/opt/目录下
  • 打包file 与dir目录至/tmp/test.zip
[root@oldboy--day01 ~]# zip -r /tmp/test.zip file dir/ #打包file文件与目录dir
  • 解压缩上一步的压缩包
[root@oldboy--day01 ~]# unzip /tmp/test.zip           #解压文件至当前文件夹
[root@oldboy--day01 ~]# unzip /tmp/test.zip  -d /opt/ #解压文件到指定文件夹

3)Linux tar工具的使用
tar是Linux下最常用的压缩与解压工具,支持文件和目录归档

语法:tar [-zjxcvfpP] filename
c     #创建新的归档文件
x     #对归档文件进行解压
f     #指定包文件名,多参数时f写最后
t     #列出归档文件里的文件列表
z     #使用gzip压缩归档后的文件(.tar.gz)
j     #使用bzip2压缩归档后的文件(.tar.bz2)
J     #使用xz压缩归档后的文件(tar.xz)
C     #指定解压目录位置
X     #派出多个文件(写入需要排除的文件名称)
h     #打包软链接
--exclude #在打包的时候写入需要排除文件或目录

常见打包与压缩组合

cjf #打包tar.bz格式
cJf #打包tar.xz格式(使用较少)
zxf #解压tar.gz格式
jxf #解压tar.bz格式
czf #打包tar.gz格式
tf  #查看压缩包内容
xf  #自动选择解压模式

示例:

  1. 将文件或目录进行打包压缩
  • 文件的打包
[root@oldboy--day01 ~]# tar czf test.tar.gz test/ test2  #以gzip方式压缩test与test2这两个目录
[root@oldboy--day01 ~]# tar cjf test.bz2 dir.txt dir/    #以bz2方式压缩dir.txt 文件与dir目录
  • 查看包内文件与目录
[root@oldboy--day01 ~]# tar tf test.tar.gz  #不解压查看压缩包内容
[root@oldboy--day01 ~]# tar tf test.tar.bz2  #不解压查看压缩包内容
[root@oldboy--day01 ~]# tar tf test.tar.xz  #不解压查看压缩包内容
  • 解压
[root@oldboy--day01 ~]# tar xf test.tar.gz #解压文件至当前目录
[root@oldboy--day01 ~]# tar xf test.tar.bz2 #解压文件至当前目录
[root@oldboy--day01 ~]# tar xf test.tar.xz  #解压文件至当前目录
[root@oldboy--day01 ~]# tar xf test.tar.gz -C /tmp/  #解压至指定目录

2.打包/tmp/下所有文件
方式一:

[root@oldboy--day01 ~]# find tmp/ -type f |xargs tar czf tmp.tar.gz  #打包/目录下的所有文件打包格式为tar.gz

方式二:

[root@oldboy--day01 ~]# tar czf tmp.tar.gz $(find /tmp/ -type f)  #打包/目录下的所有文件打包格式为tar.gz

3.打包链接文件,打包链接文件的真实文件

[root@oldboy--day01 ~]# tar czf local.tar.gz weixin   #打包压缩微信软链接,压缩包文件名为local.tar.gz

4.排出操作

  • 排除单个:
[root@oldboy--day01 ~]# tar czf etc.tar.gz /etc/ --exclude=etc/services   #排除/etc/services文件打包压缩其他文件
  • 排除多个:
[root@oldboy--day01 ~]# tar czf etc.tar.gz /etc/ --exclude=etc/passwd --exclude=etc/shadow      #排除/etc/passwd文件和shadow文件打包压缩其他文件

5.将需要排除的文件写入一个文件中

[root@oldboy--day01 ~]# cat shanchu.txt 
/etc/passwd
/etc/passwd-
/etc/security/opasswd
/etc/pam.d/passwd
[root@oldboy--day01 ~]# tar czXf shanchu.txt  etc.tar.gz /etc/    #压缩除文件中以外的其他文件

例题:
0.环境准备

[root@oldboy--day01 ~]# yum install mariadb-server
[root@oldboy--day01 ~]# systemctl start mariadb
[root@oldboy--day01 ~]# mkdir /backup

方法1.mysql备份及恢复

  • 打包/var/lid/mysql目录中的文件至/backup
[root@oldboy--day01 ~]# mkdir /var/lid/mysql -p
[root@oldboy--day01 ~]# tar cJf /backup/myspl.tar.xz /var/lid/mysql  #将/var/lid/mysql目录下的文件打包成tar.xz格式
tar: Removing leading `/' from member names
  • 解压文件至/目录
[root@oldboy--day01 ~]# tar xf /backup/myspl.tar.xz  -C /  #将压缩包文件解压至根目录下

方法2.mysql备份及恢复

[[root@oldboy--day01 ~]# cd /var/lib/mysql 
[root@oldboy--day01 ~]# tar cJf /backup/mysql.tar.xz *    #压缩当前目录下的所有内容
[root@oldboy--day01 ~]# tar tf /backup/mysql.tar.xz       #不解压查看压缩包内的内容
[root@oldboy--day01 ~]# tar xf /backup/mysql.tar.xz - C /var/lib/mysql  #将文件解压至原位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值