Day-15-Linux 文件的压缩

一、什么是文件压缩

  • 定义:将多个文件或者目录合并打包为一个特殊的文件

二、文件压缩的意义

  • 压缩使 文件按照百分比减小
  • 提高文件的传输速率
  • 节省网络资源(宽带)

三、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

总结

今天主要学习了文件的怎样压缩,以及压缩的不同方式,我们在不同的环境与条件下选择不同的压缩方式。学了很多关于压缩的参数与选项。最后还学了一个怎样备份恢复文件。

Linux中如何压缩解压文件.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容