压缩和归档操作
一、归档备份概述
(一)文件归档
将许多零散的文件打包,并记录好各自的位置
并不压缩其存储空间
主要起到整理、备案的作用
(二)文件压缩
将单个文件按照某种算法重新编码存放
只针对单个文件
主要起到降低文件大小、节省磁盘空间的作用
(三)归档压缩包
整合归档+压缩后的结果
先归档,再压缩
(四)归档压缩格式
常见压缩包格式
扩展名 | 压缩工具 | 归档工具 |
---|---|---|
.zip、.rar、.7z | WinRAR、2345好压、7-zip、… | |
.zip | zip、unzip | |
.tar、.gz、.tgz | bzip2、bunzip2 | tar |
.tar、.bz2、.tbz | bzip2、bunzip2 | tar |
.tar、.xz、.txz | xz、unxz | tar |
二、zip压缩工具
(一)制作.zip压缩包
zip 备份操作
用法:zip [-r] 压缩包名被压缩的文档……
[root@localhost-localdomain ~]# zip -r /data/text01.zip /etc/passwd
adding: etc/passwd (deflated 61%)
[root@localhost-localdomain ~]# ls /data
hn ls.help text01.zip xixi.txt
(二)zip备份应用实例
将目录/etc/passwd和文件/data/ls.help 备份为/data/mybak.zip
[root@localhost-localdomain ~]# zip -r /data/mybak.zip /etc/passwd /data/ls.help
adding: etc/passwd (deflated 61%)
adding: data/ls.help (deflated 43%)
[root@localhost-localdomain ~]# ls /data
hn ls.help mybak.zip text01.zip xixi.txt
(三)释放.zip压缩包
1.unzip 解压操作
用法:unzip [-d 目标文件夹] .zip压缩包
[root@localhost-localdomain ~]# zip -r /data/text01.zip /etc/passwd /boot
adding: etc/passwd (deflated 61%)
adding: boot/ (stored 0%)
adding: boot/lost+found/ (stored 0%)
adding: boot/vmlinuz-0-rescue-41dc9e828da241dc829f902c1adaf0be (deflated 6%)
adding: boot/initramfs-3.10.0-1160.el7.x86_64.img (deflated 1%)
adding: boot/config-3.10.0-1160.el7.x86_64 (deflated 75%)
adding: boot/initramfs-0-rescue-41dc9e828da241dc829f902c1adaf0be.img (deflated 1%)
adding: boot/System.map-3.10.0-1160.el7.x86_64 (deflated 79%)
adding: boot/symvers-3.10.0-1160.el7.x86_64.gz (deflated 0%)
……
[root@localhost-localdomain ~]# unzip -d /data/ /data/text01.zip // 释放到指定目录
[root@localhost-localdomain ~]# unzip /data/text01.zip // 释放到当前目录
Archive: /data/text01.zip
inflating: /data/etc/passwd
creating: /data/boot/
creating: /data/boot/lost+found/
inflating: /data/boot/vmlinuz-0-rescue-41dc9e828da241dc829f902c1adaf0be
inflating: /data/boot/initramfs-3.10.0-1160.el7.x86_64.img
inflating: /data/boot/config-3.10.0-1160.el7.x86_64
inflating: /data/boot/initramfs-0-rescue-41dc9e828da241dc829f902c1adaf0be.img
inflating: /data/boot/System.map-3.10.0-1160.el7.x86_64
inflating: /data/boot/symvers-3.10.0-1160.el7.x86_64.gz
creating: /data/boot/grub/
……
[root@localhost-localdomain ~]# ls /data
boot etc text01.zip
[root@localhost-localdomain ~]# ls /data/boot
config-3.10.0-1160.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-41dc9e828da241dc829f902c1adaf0be.img
initramfs-3.10.0-1160.el7.x86_64.img
lost+found
symvers-3.10.0-1160.el7.x86_64.gz
System.map-3.10.0-1160.el7.x86_64
vmlinuz-0-rescue-41dc9e828da241dc829f902c1adaf0be
vmlinuz-3.10.0-1160.el7.x86_64
三、gzip/bzip2/xz压缩工具
(一)制作.gz压缩包
用法:gzip[-9] 文件名…
分别压缩每个文件,原始文件不保留
[root@localhost-localdomain ~]# touch /data/text01.txt
[root@localhost-localdomain ~]# ls /data/
text01.txt
[root@localhost-localdomain ~]# gzip /data/text01.txt
[root@localhost-localdomain ~]# ls /data
text01.txt.gz
(二)释放.gz压缩包
用法1:gunzip.gz压缩包……
用法2:gzip-d .gz压缩包……
分别解压每个.gz包文件,原始文件不保留
[root@localhost-localdomain ~]# gzip -d /data/text01.txt.gz
[root@localhost-localdomain ~]# ls /data
text01.txt
(三)bzip2与bunzip2
1.bzip2 压缩操作
用法:bzip2 [-9] 文件名…
分别压缩每个文件,原始文件不保留
[root@localhost-localdomain ~]# bzip2 /data/text01.txt、
[root@localhost-localdomain ~]# ls /data
text01.txt.bz2
2.bunzip2 解压操作
用法1:bunzip2 .bz2压缩文件… …
用法2:bzip2 -d .bz2压缩文件… …
分别解压每个.bz2包文件,原始文件不保留
[root@localhost-localdomain ~]# bzip2 -d /data/text01.txt.bz2
[root@localhost-localdomain ~]# ls /data
text01.txt
(四)xz与unxz
1.xz压缩操作
用法:xz[-9] 文件名…
分别压缩每个文件,原始文件不保留
[root@localhost-localdomain ~]# xz /data/text01.txt
[root@localhost-localdomain ~]# ls /data
text01.txt.xz
1.unxz解压操作
用法1:unxz.xz压缩文件……
用法2:xz-d .xz压缩文件……
分别解压每个.xz包文件,原始文件不保留
[root@localhost-localdomain ~]# xz -d /data/text01.txt.xz
[root@localhost-localdomain ~]# ls /data
text01.txt
四、tar归档及压缩
(一)制作.tar归档包
用法:tar -cf .tar归档包名 被归档的文件… …
逐一复制并归档,原始文件保留
选项含义:-c 创建、-v 细节、-P 保留根路径、-f 归档
[root@localhost-localdomain ~]# tar -cf /data/text05.tar /boot/ /etc/passwd
tar: 从成员名中删除开头的“/”
[root@localhost-localdomain ~]# ls /data/
text01.txt text05.tar
(二)释放.tar归档包
用法:tar -xf .tar归档包 [-C 目标目录]
解包并逐一提取,原始文件保留
选项含义:-x 释放、-C 存放的目标位置
[root@localhost-localdomain ~]# tar -xf /data/text05.tar -C /data
[root@localhost-localdomain ~]# ls /data
boot etc text01.txt text05.tar
(三)归档+压缩的整合
1.tar 外连选项
-z:调用gzip执行压缩/解压缩
[root@localhost-localdomain ~]# tar -zcf /data/text01.tar.gz /etc/passwd /boot/
tar: 从成员名中删除开头的“/”
[root@localhost-localdomain ~]# ls /data/
text01.tar.gz
-j:调用bzip2 执行压缩/解压缩
[root@localhost-localdomain ~]# tar -jcf /data/text01.tar.bz2 /etc/passwd /boot/
tar: 从成员名中删除开头的“/”
[root@localhost-localdomain ~]# ls /data/
text01.tar.bz2 text01.tar.gz
-J:调用xz执行压缩/解压缩
[root@localhost-localdomain ~]# tar -Jcf /data/text01.tar.xz /etc/passwd /boot/
tar: 从成员名中删除开头的“/”
[root@localhost-localdomain ~]# ls /data/
text01.tar.bz2 text01.tar.gz text01.tar.xz
2.制作.tar.gz、.tar.bz2、.tar.xz归档压缩包
tar -zcf.tar.gz包被备份的文件……
tar -jcf.tar.bz2包被备份的文件……
tar -Jcf.tar.xz包被备份的文件……
3.释放.tar.gz、.tar.bz2、.tar.xz归档压缩包
tar -xf备份文件[-C 目标目录]
[root@localhost-localdomain ~]# tar -xf /data/text01.tar.gz -C /data/
[root@localhost-localdomain ~]# ls /data/
boot etc text01.tar.bz2 text01.tar.gz text01.tar.xz
(四)归档+压缩的整合
将/etc和/srv目录备份为/opt/etcsrv.tar.gz 文件
保留原始文档的根路径(-P)、权限等属性(-p)
[root@localhost-localdomain ~]# tar -zcpPf /data/etcsrv.tar.gz /etc/passwd /boot/
[root@localhost-localdomain ~]# ls /data/
boot etc etcsrv.tar.gz text01.tar.bz2 text01.tar.gz text01.tar.xz
[root@localhost-localdomain ~]# tar -tf /data/etcsrv.tar.gz
tar: 从成员名中删除开头的“/”
/etc/passwd
/boot/
/boot/lost+found/
/boot/vmlinuz-0-rescue-41dc9e828da241dc829f902c1adaf0be
/boot/initramfs-3.10.0-1160.el7.x86_64.img
/boot/config-3.10.0-1160.el7.x86_64
/boot/initramfs-0-rescue-41dc9e828da241dc829f902c1adaf0be.img
/boot/System.map-3.10.0-1160.el7.x86_64
/boot/symvers-3.10.0-1160.el7.x86_64.gz
/boot/grub/
……
[root@localhost-localdomain ~]# ls -lh /data/etcsrv.tar.gz
-rw-r--r--. 1 root root 122M 6月 29 18:30 /data/etcsrv.tar.gz
[root@localhost-localdomain ~]# tar -zxpPf /data/etcsrv.tar.gz // 还原操作