一、打包压缩三剑客

运维的日常工作中,我们需要备份文件,备份某一个目录中的文件,这时候使用cp等命令不行了。

占用空间巨大,避免空间浪费,选择打包压缩目录实现备份的目的。

未来:备份单个文件就是cp即可,备份多个文件或目录推荐使用打包压缩

1.1 概述

压缩命令 应用场景
tar⭐ ⭐ ⭐ ⭐ ⭐ 大部分使用tar即可. 创建,查看, 解压,解压到指定目录
gzip 一般配合其他命令使用.
zip、unzip 一般用于解压zip格式的压缩包unzip

1.2 tar

  • windows 压缩

  • linux 打包压缩

  • 打包(文件放在一起) tar

  • 压缩(进行压缩,节约空间) tar命令的选项

  • tar命令要熟练掌握的功能:

  • 创建压缩包
  • 查看压缩包
  • 解压压缩包
  • 解压压缩包到指定目录
tar命令选项 命令说明
tar zcf 压缩包 被压缩的文件/目录 创建压缩包
tar tf 压缩包 查看压缩包
tar xf 压缩包 解压压缩包到当前目录
tar xf 压缩包 解压后的存放目录 解压压缩包到指定目录

1.2.1 创建压缩包

说明:需要指定压缩包存放位置和名字还有被压缩的文件或目录.

#请把/etc/目录压缩,压缩包放在/tmp/etc.tar.gz
tar zcvf  /tmp/etc.tar.gz  /etc/
tar zcf  /tmp/etc.tar.gz  /etc/

参数说明:

  • z:通过gzip压缩工具进行压缩
  • c:创建包(打包),如果只放cf选项就是打包,不压缩
  • v:显示过程,一般不加
  • f:指定压缩包

1.2.2 查看压缩包内容

$ tar ztvf /tmp/etc.tar.gz
$ tar tf /tmp/etc.tar.gz

参数说明:

  • t:列表
  • f:指定压缩包

1.2.3 解压压缩包

说明:默认解压到当前目录.

tar zxvf /tmp/etc.tar.gz
tar xf /tmp/etc.tar.gz

参数说明:

  • x:解压
  • f:指定压缩包

Aspose.Words.1d8e5ad2-7b19-4d94-a2b7-e1825298228e.058

1.2.4 解压到指定目录

解压压缩包/tmp/etc.tar.gz到/tmp目录下面

$ tar xf /tmp/etc.tar.gz -C /tmp/

参数说明:

  • x:解压
  • f:指定压缩包
  • C:指定解压目录

1.2.5 tar: 从成员名中删除开头的“/”

结论:是个警告而已,可以忽略。

tar: Removing leading '/' from member names

由来:

  • 这个是tar命令的安全保护机制.
  • 提示出现的原因,我们打包的目标目录或文件是绝对路 径.
  • 把我们使用的绝对路径转换为相对路径.
  • 为了防止压缩包中保留绝对路径,解压的时候可能发生覆盖,导致数据,配置丢失.

避免提示:使用相对路径打包.

cd /
tar zcf  /tmp/etc.tar.gz  etc/

说明:这里使用相对路径打包,提示警告消失了。

1.3 gzip

gzip命令选项 命令说明
gzip 被压缩的文件/目录 创建压缩包
gzip -d 压缩包 解压压缩包到当前目录

注意:使用gzip命令压缩后,原文件不存在

创建gz压缩包

touch lidao.txt
gzip lidao.txt
ll lidao.txt.gz

解压

gzip -d a.txt.gz

1.4 zip/unzip

专门处理.zip格式的压缩包.

tar无法处理.zip格式的压缩包.

.zip格式是windows和linux共同支持格式.

zip/unzip命令选项 命令说明
zip 压缩包 被压缩的文件 压缩文件
zip -r 压缩包 被压缩的目录 压缩目录
unzip -t 压缩包(以.zip命令结尾的) 查看解压包内容
unzip 压缩包 解压

温馨提示:如果命令没有请yum安装yum install -y unzip

#压缩a.txt文件为a.txt.zip
zip a.txt.zip a.txt

#压缩/etc目录
zip -r etc.zip /

#查看a.zip压缩包内容
unzip -t a.zip

#解压a.zip
unzip a.zip

1.5 小结

压缩 命令 应用场景
tar 大部分使用tar即可.创建,查看, 解压,解 压到指定目录. 核心使用
gzip 一般配合其他命令使用.
zip/unzip 一般用于解压zip格式的压缩包 目前会使用 unzip