Linux系统压缩打包 一. 文件归档与压缩 二. gzip打包与压缩 (压缩工具)三. zip打包与压缩 四. tar打包与压缩

发布于:2022-12-25 ⋅ 阅读:(289) ⋅ 点赞:(0)
  • 1.文件归档与压缩
  • 1)什么是文件归档
  • 将多个文件或目录合并成为一个特殊的文件
  • 压缩是压缩单个文件 归档压缩是压缩多个文件(可以压缩/etc目录下所包含的所有文件) 归档压缩是压缩加普通归档
  • 2)为什么要对文件进行压缩?
    • 当我们在传输大量的文件时,通常都会选择将该文件进行压缩,然后再进行传输。
    • 首先:压缩后的文件会比压缩前的文件小。一个28G的文件夹压缩后能达到6G
    • 其次:多个文件传输很慢,但单个文件传输会很快,同时还能节省网络的消耗
  • 3)Windows的压缩包与Linux的压缩包能否互通?
    • 在windows系统下,我们接触最多的压缩格式是 rar 或 zip ,但在Linux上使用最多的压缩格式是 zip 和tar.gz 。当然不用担心,Linux上的压缩格式放在windows系统下都是可以正常打开的。
  • PS: Linux不支持 Windows下的 RAR 格式的压缩文件。Windows和Linux互通通常选择 zip
  • 4)Linux下压缩包有哪些常见的类型
    • 格式 压缩工具
    • .zip zip压缩归档工具
    • .gz gzip压缩工具,只能压缩文件,会删除原文件
    • .bz2 bzip2压缩工具,只能压缩文件,会删除原文件
    • .tar.gz tar归档结合gzip压缩工具
    • .tar.bz2 tar归档结合bzip2压缩工具
  • 2.压缩工具(gzip bzip2)
  • 下载压缩工具
  • yum install -y gzip
  • yum install -y bzip2
  • 案例
  • 1 ).创建两个10M的文件
  • dd if=/dev/zero of=10M-1 count=1
  • dd if=/dev/zero of=10M-2 count=1
  • 3).压缩文件
  • 使用gzip 10M-1压缩文件
  • gzip 10M-1
  • gzip 10M-2
  • ll -lh 10M* = 查看当前目录下有10M前缀的文件
  • -rw-r--r--. 1 root root 32 9月 7 15:42 10M-1.gz
  • -rw-r--r--. 1 root root 32 9月 7 15:43 10M-2.gz
  • 压缩文件后,源文件消失,只有压缩后的文件,压缩后的文件名为10M-1.gz
  • 使用bzip2 10M-1 压缩文件
  • [root@localhost ~]# bzip2 10M-1
  • [root@localhost ~]# bzip2 10M-2
  • [root@localhost ~]# ll -lh 10M*
  • -rw-r--r--. 1 root root 41 9月 7 15:42 10M-1.bz2
  • -rw-r--r--. 1 root root 41 9月 7 15:43 10M-2.bz2
  • 4).解压缩
  • [root@localhost ~]# gzip -d 10M-2.gz
  • [root@localhost ~]# gzip -d 10M-1.gz
  • [root@localhost ~]# ll -lh 10M*
  • -rw-r--r--. 1 root root 512 9月 7 15:42 10M-1
  • -rw-r--r--. 1 root root 512 9月 7 15:43 10M-2
  • 解压缩文件后,压缩文件消失,只有源文件,解压缩后的文件名为10M-1
  • 总结
  • 1)两个压缩文件工具 gzip 10M-1与bzip2 10M-1,用法一致
  • 2)源文件和压缩文件不能共存
  • 3)都不能对目录压缩
  • 4)目前基本只会使用gzip 10M-1
  • 3.zip (压缩归档工具)
  • 使用zip命令可以对文件进行压缩打包,解压则需要使用unzip命令
  • 默认情况下没有zip和unzip工具,需要进行安装
  • yum install -y zip
  • 下载yum install -y unzip (解压)
  • zip 语法
    • zip [参数] [压缩包名][压缩的目录或者文件的路径]
  • zip命令的常见参数
  • m 将文件压缩后,删除原文件
  • o 将压缩文件内的所有文件的最新变动时间设为压缩的时间
  • q 在压缩的时候不显示指令执行的过程
  • r 递归压缩,将自定目录下的所有子文件以及文件一起处理
  • x 文件列表,压缩时排除文件列表中的文件
  • t (日期) 指定压缩文件的日期
  • T 显示信息
  • l(L) 显示版权信息
  • 案例
  • 1.压缩文件为zip包
  • [root@localhost ~]# touch file 创建文件
  • [root@localhost ~]# zip file.zip file 把文件压缩为zip包
    • adding: file (stored 0%)
  • ll -h file*

  • 2.压缩目录为zip包
  • [root@localhost ~]# mkdir -p dir/1/2/3 创建目录
  • [root@localhost ~]# zip -r dir.zip dir/ 压缩目录为zip包
    • adding: dir/ (stored 0%)
    • adding: dir/1/ (stored 0%)
    • adding: dir/1/2/ (stored 0%)
    • adding: dir/1/2/3/ (stored 0%)
  • 3.查看zip压缩包是否是完整的
  • [root@localhost ~]# zip -T file.zip
    • test of file.zip OK
  • 4.不解压压缩文件,直接查看压缩包的内容
  • unzip -l file.zip
  • unzip -t file.zip
  • 5.解压zip文件包,默认解压至当前目录
  • unzip file.zip
  • 6.解压zip内容至/opt目录
  • [root@localhost ~]# unzip file.zip -d /opt/ 解压zip内容至/opt目录
    • Archive: file.zip
    • extracting: /opt/file
  • [root@localhost ~]# ls /opt 进入/opt目录
  • file
  • 总结:比较三种压缩工具的压缩性能和效率
  • 1.创建三个100M的测试文件
    • dd </dev/zero >100M_1 bs=10M count=10
    • dd </dev/zero >100M_2 bs=10M count=10
    • dd </dev/zero >100M_3 bs=10M count=10
  • 2.分别使用gzip、bzip2、zip对三个文件压缩,观察压缩文件大小
    • gzip 100M_1
    • bzip2 100M_2
    • zip 100M.zip 100M_3
    • ls -lh 100M*
  • 1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
  • 2.bzip:压缩形成的文件小,但是可用性不如gzip
  • 3.xz:是最新的压缩方式,可以自动提供最佳的压缩率
  • 3.tar 支持文件和目录的归档,本事不具备压缩能力。 归档工具需要结合gzip和bzip2实现压缩归档
  • 用法:tar + 选项+ 压缩成文件的名称.tar.gz+源文件名称
  • 语法:tar
  • tar [选项] 归档文件 被归档的文件或目录
  • 语法:tar [-zjxcvfpP] filename
  • c #创建新的归档文件
  • x #对归档文件解包
  • t #列出归档文件里的文件列表
  • v #输出命令的归档或解包的过程 (详细过程)
  • f #指定包文件名,多参数f写最后
  • z #使用gzip压缩归档后的文件(.tar.gz)
  • j #使用bzip2压缩归档后的文件(.tar.bz2)
  • J #使用xz压缩归档后的文件(tar.xz)
  • C # 指定解压目录位置 (释放指定路径)
  • X #排除多个文件(写入需要排除的文件名称) (开启排除列表文件)
  • h #打包软链接
  • --hard-dereference #打包硬链接
  • --exclude #在打包的时候写入需要排除文件或目录
  • 普通归档.tar 压缩归档 tar.gz 压缩归档 tar.bz2
  • 创建归档文件 cf czf cjf
  • 查看归档文件 tf cjf tf
  • 释放归档文件 xf xjf xf
  • 在centos7版本中对查看和释放做了优化,统一了选项
  • 实例
  • 1.压缩归档 10m-1 和10m-2两个文件
  • 普通归档
    • tar cf 10M-{1,2}
  • 压缩归档
    • tar czf 10M-{1,2}
    • tar cjf 10M-{1,2}
  • 2.查看归档文件
  • 普通归档
    • tar tf 10M-{1,2}
  • 压缩归档
    • tar czf 10M-{1,2}
    • tar cjf 10M-{1,2}
  • 3.解压到当前路径
  • tar xf 10M.tar.gz
  • tar xf 10M.tar
  • 4.解压到指定路径/opt
  • tar xf 10M.tar.gz -C /opt
  • tar xf 10M.tar -C /opt
  • 5.对/etc/目录创建归档,排除/etc/hosts /etc/resolv.config tar czf etc.tar.gz --exlcude=/etc/hosts --exlcude=/ect/resolv.conf /etc
  • 注意:
    • 1.排除文件有几个--exlcude就要写几个
    • 2.如果排除文件过多建议使用排除列表文件来定义,需要使用X选项
  • 1) 创建列表文件,将需要排除列表文件路径写入该文件,以行为为单位
    • cat > exclude_list <<EOF
    • /etc/hosts
    • /etc/resolv.config
    • EOF
  • 2)创建归档
    • tar czf etc.tar.gz exlcude_list/etc
  • 企业归档实例
  • 归档时的文件路径问题
  • 需要将/etc/sysconfig/network-scripts/ifcfg-ens33创建压缩归档到/backup目录中mkdir -p /backup
  • 方法一
    • 创建
    • tar czf /backup/ens33.tar.gz /etc/sysconfig/network-scripts/ifcfg-ens33
    • 查看
    • tar cjf /backup/ens33.tar.gz /etc/sysconfig/network-scripts/ifcfg-ens33
    • 解压
    • tar xf /backup/ens33.tar.gz -C /
  • 方法二
    • 创建
    • cd /etc/sysconfig/network-scripts
    • tar czf /backup/ens33-1.tar.gz ifcfg-ens33
    • 查看
    • tar tf /backup/ens33-1.tar.gz
    • ifcfg-ens33
    • 解压
    • tar xf /backup/ens33-1.tar.gz -C /etc/sysconfig/network-scripts/
  • 注意:
  • 1.在归档时,使用绝对路径的时候,会出现"tar: Removing leading `/' from member names",这是提
  • 示信息,提示将绝对路径的/删除,方便后面解压缩(释放),如果不想弹出该信息,有两种方法:
  • 1)可以使用&> /dev/null
  • 2)创建归档时,进入/目录,使用相对路径来归档
  • cd /
  • tar czf /backup/ens33.tar.gz etc/sysconfig/network-scripts/ifcfg-ens33
  • 2.建议在归档时,根据情况选择路径
本文含有隐藏内容,请 开通VIP 后查看