Linux之打包压缩类命令zip,bzip2,gzip,xz,tar

打包压缩目的: 备份、还原

为什么要打压缩包?

  • 备份的时候,能节约空间
  • 网络传送的时候,能节约时间

什么是打包压缩:

  • 打包: 就是将很多文件放到一起,成一个文件
  • 压缩: 减少占用磁盘空间的操作

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

猜你喜欢

转载自blog.csdn.net/zheng_long_/article/details/129431601