文件与文件系统的压缩和解压缩
Posted cp-linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件与文件系统的压缩和解压缩相关的知识,希望对你有一定的参考价值。
本篇主要讲述:
1 压缩的介绍
2 压缩的格式
3 tar命令的使用
4 zip命令的使用
1、压缩的介绍
1.1 归档的含义
将许多零散的文件整理为一个文件;
文件总的大小基本不变;
1.2压缩的含义
按某种算法减小文件所占用空间的大小;
恢复时按对应的逆向算法解压;
由于 1 Byte = 8 bits ,所以每个 Byte 当中会有 8 个空格,而每个空格可以是 0, 1。压缩就是通过复杂的计算方式将没有使用的空间腾出来。最大的好处就是压缩过的文件大小变小了, 所以你的硬盘容量无形之中就可以容纳更多的数据。
2、压缩的格式
gzip------->.gz
bzip2 ---->.bz2
xz ------->.xz
2.1 gzip, zcat/zmore/zless/zgrep
gzip [-cdtv#] 文件名
选项与参数:
-c :将压缩的数据输出到屏幕上,可通过数据流重导向来处理;
-d :解压缩的参数;
-t :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v :可以显示出原文件/压缩文件的压缩比等信息;
-# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6
[root@localhost home]# gzip -v /home/passwd
/home/passwd: 54.8% -- replaced with /home/passwd.gz
[root@localhost home]# ll /home/passwd
ls: cannot access /home/passwd: No such file or directory
[root@localhost home]# gzip -d /home/passwd.gz
[root@localhost home]# ll /home/passwd
-rw-r--r--. 1 root root 795 May 20 02:32 /home/passwd
注意:使用这种压缩方式之后源文件就不存在了,所以最好要在压缩前备份
[root@server0 ~]# zcat 文件名.gz
zcat/zmore/zless 则可以对应于cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件!
[root@localhost home]# zcat passwd.gz
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
2.2 bzip2, bzcat/bzmore/bzless/bzgrep
使用方法和gzip类似,只是压缩文件的后缀为.bz2
2.3 xz, xzcat/xzmore/xzless/xzgrep
压缩文件的后缀为.xz
3、tar 集成备份工具
3.1 参数:
-c:创建归档
-x:释放归档
-f:指定归档文件名称
-z、-j、-J(大写):调用 .gz、.bz2、.xz 格式的工具进行处理
-t:显示归档中的文件清单
-P(大写):保持归档内文件的绝对路径
-C(大写):指定tar包释放的位置
3.2 使用 tar -c ... 命令
tar -zcf 备份文件.tar.gz 被备份的文档....
tar -jcf 备份文件.tar.bz2 被备份的文档....
tar -Jcf 备份文件.tar.xz 被备份的文档....
tar -zcf /opt/file.tar.gz /boot/ /home/ #将/boot /home 以gzip格式打包
tar -cf /opt/123.tar /boot #将/boot内容打包,没有格式
gzip /opt/123.tar #以gzip格式解包
tar -jcf /opt/test.tar.bz2 /boot/ /home/
tar -Jcf /opt/abc.tar.xz /boot/ /home/
tar -xf /opt/file.tar.gz -C /mnt/
-t:显示归档中的文件清单
-P(大写):保持归档内文件的绝对路径
实验案例:
[root@server0 ~]# rm -rf /opt/* #为确保能清楚知道接下来发生了什么
[root@server0 ~]# echo 123456 > /opt/1.txt
[root@server0 ~]# tar -zcPf /mnt/1.tar.gz /opt/1.txt
[root@server0 ~]# rm -rf /opt/1.txt #删除/opt/1.txt
[root@server0 ~]# cd /mnt/ #不要在/opt下解压
[root@server0 mnt]# tar -xPf 1.tar.gz
[root@server01 mnt]# ls /opt #发现/opt下的1.txt又回来了
总结:-P 压缩和解压是要成对出现的,如果压缩的时候写了,而解压的时候没有写,在哪个路径下解压的就在哪显示出来。
4、zip压缩和归档
zip :跨平台(Windows与Linux)
命令格式:zip [-r] /路径/备份文件.zip /路径/被归档的文档..
[root@svr7 ~]# zip -r /opt/test01.zip /home/ /boot/ #压缩 -r 递归处理,将指定目录下的所有文件和子目录一并处理
[root@svr7 ~]# ls /opt
[root@svr7 ~]# unzip /opt/test01.zip -d /mnt/ #解压
[root@svr7 ~]# zip -r /opt/test02.zip /etc/selinux
[root@svr7 ~]# ls /opt
[root@svr7 ~]# unzip /opt/test02.zip /mnt
以上是关于文件与文件系统的压缩和解压缩的主要内容,如果未能解决你的问题,请参考以下文章