20、Linux 实战:压缩和打包
压缩/打包
压缩:通过压缩算法将一个大的文件变成一个小的文件
1)压缩比:压缩后文件的大小和压缩前文件占用的大小的比值
2)打包:将很多文档打包成为一个文件
3)为了利于理解压缩/打包文档都有对应的后缀名
后缀名 | 含义 |
---|---|
.Z | compress程序压缩的文档 |
.zip | zip程序压缩的文档 |
.gz | gzip程序压缩的文档 |
.bz2 | bzip2程序压缩的文档 |
.xz | xz程序压缩的文档 |
.tar | tar程序打包的文档,并没有压缩过 |
.tar.gz | tar程序打包的文档,并且经过gzip的压缩 |
.tar.bz2 | tar程序打包的文档,并且经过bzip2的压缩 |
.tar.xz | tar程序打包的文档,并且经过xz的压缩 |
压缩
gzip命令:使用gzip程序压缩文档
指令格式1:gzip 选项 文档路径 //压缩指定文档
选项 | 含义 |
---|---|
-f | 强制压缩文档 |
-r | 递归压缩文档 |
-t | 检验压缩文档 |
-v | 压缩文件时显示压缩详细信息 |
-c | 将压缩的文件数据同时输出到屏幕上 |
-N | 指定压缩等级 N为1~9之间的数字,默认为-6 -1最快但压缩比最差,-9最慢但压缩比最好 |
1)默认文件被压缩成“原文件名.gz”的压缩文件后,源文件会被删除
2)zcat/zmore/zless使用对应于cat/more/less命令读取纯文本文件的方式来读取被压缩后的压缩文件(egrep对应于grep命令在文件中查找数据)
//gzip压缩的文档可在Windows系统中被解压缩
指令格式2:gzip -d 文档路径 //解压指定文件
1)文件别解压后,压缩文件会被删除
bzip2命令:使用bizp2程序压缩文档
指令格式1:bzip2 选项 文档路径
选项 | 含义 |
---|---|
-z | 强制压缩文档 |
-t | 检验压缩文档 |
-k | 压缩后保留源文件 |
-v | 压缩文件时显示压缩详细信息 |
-c | 将压缩的文件数据同时输出到屏幕上 |
-N | 指定压缩等级 N为1~9之间的数字,默认为-6 -1最快但压缩比最差,-9最慢但压缩比最后 |
1)bzcat/bzmore/bzless使用对应于cat/more/less命令读取纯文本文件的方式来读取被压缩后的压缩文件
指令格式2:bzip2 -d 文档路径 //解压指定文件
//文件别解压后,压缩文件会被删除
xz命令:使用xz程序压缩文档
指令格式:xz 选项 文档路径
选项 | 含义 |
---|---|
-t | 检验压缩文档 |
-k | 压缩后保留源文件 |
-v | 压缩文件时显示压缩详细信息 |
-c | 将压缩的文件数据同时输出到屏幕上 |
-l | 显示压缩文件的详细信息 |
-N | 指定压缩等级 N为1~9之间的数字,默认为-6 -1最快但压缩比最差,-9最慢但压缩比最后 |
指令格式2:xz -d 文档路径 //解压指定文件
//文件别解压后,压缩文件会被删除
压缩时间:xz>bzip2>gzip
压缩效率:xz>bzip2>gzip
打包
tarfile:仅使用tar对文档打包
tarball:使用tar对文档打包同时也进行压缩
tar命令:将1个或多个文档打包成一个文件
指令格式1:tar 选项 -f 待建立打包文件名 文件名 //打包压缩文件
选项 | 含义 |
---|---|
-f | 指定后续待处理的压缩/解压文件路径 (由于该选项比较特殊,所以需将-f单独写出) |
-c | 建立打包文件 |
-z | 通过gzip程序压缩/解压 |
-j | 通过bzip程序压缩/解压 |
-J | 通过xz程序压缩/解压 |
-v | 在压缩过程中显示执行过程 |
-p | 保留打包文档原本权限与属性 且在保留文档路径时不包含根目录“/” |
-P | 使用绝对路径的方式记录打包文档的原路径 |
--exclude=File | 压缩过程中不包含File |
--newer=“2021/04/09” | 仅打包2021/04/09后的新文件 |
1)若使用绝对路径记录打包文档的原路径,在解压时会直接放置到对应路径(若存在相同文档则覆盖)
2)“新文件”通过mtime和ctime判断
指令格式2:tar 选项 -f 打包文件路径 //解压/查看压缩文件
选项 | 含义 |
---|---|
-t | 列出打包文件中所含文档的文档名 |
-v | 同时列出文档的权限/属性等参数 |
-x | 解包/解压缩 |
-C | 将文件解压后放置到指定目录 |
//若不指定解压目录,则默认在当前目录下解压
如:打包/etc目录,并进行对于操作
1)使用tar打包/etc目录,并使用bzip2压缩
2)查看/root/etc.tar.bz2打包文件
3)将/root/etc.tar.bz2解压到/tmp/etc文件中
4)仅打开/root/etc.tar.bz2打包文件中的shadow文件
5)打包/etc和/root两个目录,但不包含/root/etc开头的文件
6)打包/root目录下,在2021/03/20后的新文件
解压打包文件中的指定文件:tar -jxv -f 打包文件路径 指定文件路径
1)其中j也可能是z或J(根据压缩程序决定)
镜像
mkisofs命令(make iso file system):将指定数据备份成镜像文件
指令格式:mkisofs 选项 待备份数据
选项 | 含义 |
---|---|
-o | 指定生成的镜像文件路径 |
-v | 显示创建镜像文件过程 |
-m | 指定不会备份的文档 |
-r | 通过Rock Ridge记录更多文件信息 |
-graft-point | 实现镜像文件中目录的功能 |
1)生成的镜像文件都以“img”或“iso”作为后缀名
2)光盘格式一般为iso9660,仅支持旧版的DOS文件名(文件名8,扩展名3)
3)-r选项可使文件名记录更多信息(如:UID/GID和权限等)
4)-graft-point选项:等号左边是在镜像文件内的目录,右侧是实际数据
//默认情况下,所有被备份数据都默认放置到镜像文件中的根目录,就会导致两个不同目录下的同名文档不能备份到同一镜像文件下,而-graft-point选项就可实现通过目录实现分层保存解决同名问题
如:将/root和/home文件备份成root_home1.iso镜像文件
1)备份成镜像文件;
2)挂载并查看镜像文件
如:将/root和/home文件备份成root_home2.iso文件,且镜像文件目录下分为root和home两个目录,不包含/home/mwl目录
1)备份镜像文件;
2)挂载并查看镜像文件;