打包压缩目的: 备份、还原
为什么要打压缩包?
- 备份的时候,能节约空间
- 网络传送的时候,能节约时间
什么是打包压缩:
- 打包: 就是将很多文件放到一起,成一个文件
- 压缩: 减少占用磁盘空间的操作
一、zip,bzip2
zip,bzip2只能给文件做成一个压缩包,不能对文件夹进行压缩
。
zip命令格式:
压缩: zip 【打包压缩文件】 【原文件】
解压: unzip 【打包压缩文件】
#安装zip,unzip,它不是Linux默认安装
[root@master 410]# yum install zip unzip -y
#压缩文件
[root@master 410]# zip passwd.zip passwd
adding: passwd (deflated 62%)
#解压
[root@master backup]# unzip passwd.zip
bzip2命令格式:
压缩:bzip2 【原文件】
查看:bzcat 【打包压缩文件】
解压:bunzip2 【打包压缩文件】
#安装bzip2,它不是Linux默认安装
[root@master lianxi]# yum install bzip2 -y
#压缩文件
[root@master lianxi]# bzip2 feng.yaml
#查看文件
[root@master lianxi]# bzcat feng.yaml.bz2
#解压文件
[root@master lianxi]# bunzip2 feng.yaml.bz2
二、gzip,xz
gzip,xz只能给文件做成一个压缩包,不能对文件夹进行
xz ,gzip是linux系统默认安装的压缩工具
#直接在原文件上进行压缩,添加后缀名.gz
[root@master backup]# gzip passwd
#查看压缩文件里的内容
[root@master backup]# zcat passwd.gz
#解压文件
[root@master backup]# gunzip passwd.gz
#直接在原文件上进行压缩,添加后缀名.xz
[root@master backup]# xz passwd
#查看压缩文件里的内容
[root@master backup]# xzcat passwd.xz
#解压文件
[root@master backup]# unxz passwd.xz
对比
xz的压缩效果比gzip好,压缩后占用的空间比较少,压缩需要的时间长;
gzip 压缩速度快,但是效果一般。
文件比较小,使用xz或者gzip都可以,
如果文件比较大,建议使用xz压缩,可以节约更加多的磁盘空间,但是需要时间比较长。
三、tar
用途:制作归档文件、释放归档文件
格式:
tar [选项] 【归档文件名】 【源文件或目录】
常用命令选项
-c 创建 .tar 格式的包文件
-x 解开.tar格式的包文件
-v 输出详细信息
-f 表示使用归档文件
-t 查看包内的文件
-p 保持原文件的原来属性
-P 保持原文件的绝对路径
-z 调用gzip去压缩
-J 调用xz去压缩
-j 调用bzip2去压缩
–exclude 排除目录
压缩:(压缩的文件名建议加上【.tar.(使用的压缩方法)】,以便识别)
例如:将当前目录的passwd文件以gzip打包:
#将当前目录下的passwd文件打包成passwd.tar.gz压缩包
[root@master luo]# tar czf passwd.tar.gz passwd
如果文件名一样,后面打包的文件会覆盖原来的文件
1.tf查看压缩文件里的内容
[root@master luo]# tar tf hosts.tar.gz
2.解压xf
[root@master luo]# tar xf hosts.tar.gz
使用绝对路径保存压缩包
[root@master luo]# tar czf /weihong/passwd.tar.gz /etc/passwd
tar: 从成员名中删除开头的“/”
解压文件的时候,不指定路径,默认解压到当前
-C 解压文件指定存放的路径
[root@master luo]# tar xf /weihong/passwd.tar.gz -C /nongda_weihong/
文件和文件夹可以一起打包到一个压缩文件里
[root@master luo]# tar czf /lianxi/luoyawei/boot_passwd_log.tar.gz /boot /etc/passwd /var/log
tar: 从成员名中删除开头的“/”
#将/boot目录下的除grub目录以外的所有文件都备份到/bak目录下叫no-grub.tar.gz
[root@master luo]# tar --exclude=/boot/grub -czf /bak/no-grub.tar.gz /boot
#排除多个文件或者文件夹
[root@master luo]# tar --exclude=/boot/{grub2,grub,efi} -czf /lianxi/luoyawei/no_grub2_boot.tar.gz /boot