Linux 压缩包管理

一、简述

1.什么是压缩包?

顾名思义,压缩包就是将多个文件或目录压缩合并为一个特殊的文件。

2.为什么要对文件进行压缩?

  • 压缩文件会减小文件的体积
  • 加快资源传输
  • 节省网络带宽

二、Linux 中常见的压缩包类型

1.zip

zip是一种常见的压缩格式,它使用DEFLATE算法进行压缩。DEFLATE算法是一种无损压缩算法,通过识别和替换重复出现的数据模式,以及使用霍夫曼编码进行编码,来减小文件大小。zip格式的压缩率通常较高,可以压缩多种类型的文件。

2.gz

gz是一种使用GNU压缩程序(gzip)进行压缩的格式。gzip使用DEFLATE算法对文件进行压缩,与zip相同。由于gzip仅对单个文件进行压缩,因此它通常与tar命令结合使用,生成.tar.gz文件。

3.bz2

bz2是一种使用Burrows-Wheeler算法和霍夫曼编码进行压缩的格式。Burrows-Wheeler算法通过对文件字符进行转换和排序,以便霍夫曼编码能够更有效地编码文件。相比于gzip,bz2格式的压缩率更高,但压缩和解压缩速度较慢。

4.tar.gz

tar.gz(或tgz)是一种使用tar命令打包文件,再使用gzip进行压缩的格式。tar命令将多个文件或目录打包成一个单独的文件,然后gzip对该文件进行压缩。tar.gz格式通常用于在Unix系统下进行文件归档和压缩。

5.tar.bz2

tar.bz2是一种使用tar命令打包文件,再使用bzip2进行压缩的格式。与tar.gz类似,tar.bz2格式也用于文件归档和压缩,压缩率相对较高。

三、常用压缩工具使用方法

1.gzip

PS:gzip 压缩仅对文件有效,无法压缩目录。

安装 gzip

~]# yum install gzip -y

参数说明

        -d:解压缩包

示例

打包

解包

查看压缩的内容

打包当前目录下所有的文件

解压当前目录下所有的文件

2.zip/unzip

安装 zip

~]# yum install zip -y

参数说明

        zip:

                -r:递归压缩目录

                -T:查看压缩包是否完整

        unzip:

                -l:查看压缩包内容

                -t:检测压缩包文件是否完整

                -d:指定解压位置

示例

递归压缩目录

Linux 压缩包管理_第1张图片

查看压缩包是否完整

查看压缩包内容

Linux 压缩包管理_第2张图片

检测压缩包文件是否完整

Linux 压缩包管理_第3张图片

指定解压位置

Linux 压缩包管理_第4张图片

3.tar

语法

tar [参数] [压缩包名称] [压缩文件/目录]

参数说明

        -c:创建新的递归文件

        -x:对递归文件解压缩

        -t:查看压缩包内容

        -f:指定压缩包名称(该参数写在最后)

        -z:使用 gzip 压缩归档后的文件(tar.gz)

        -j:使用 bzip2 压缩归档后的文件(tar.bz2)

        -J:使用 xz 压缩归档后的文件(tar.xz)

        -C:指定解压位置

        -X:排除多个文件

        -h:打包软连接

        --exclude:在打包的时候写入需要排除的问价或目录

常用的打包组合

1.打包

czf 打包tar.gz格式

cjf 打包tar.bz2格式

cJf 打包tar.xz格式(使用较少)

czhf 打包tar.gz格式的软连接

2.解压缩

zxf 解压tar.gz格式

jxf 解压tar.bz格式

xf 自动选择解压模式

tf 查看压缩包内容

3.最常用

czf 打包tar.gz格式

tf 查看压缩包内容

xf 自动选择解压模式

-C 解压到指定目录

示例

打包

PS:如果在打 tar.bz2 包的时候报错 tar (child): bzip2: Cannot exec: No such file or directory 是因为 没有 bzip2 这个工具直接使用 yum install bzip2 -y 安装即可。

查看压缩包内容

Linux 压缩包管理_第5张图片

解压

Linux 压缩包管理_第6张图片

指定解压位置

排除单个文件

Linux 压缩包管理_第7张图片

排除多个文件(将想要排除的文件写入一个文件中)

Linux 压缩包管理_第8张图片

四、tar: Removing leading `/' from member names

或许有人已经发现,如果我们压缩 / 目录下的文件或目录,会有删除 / 目录的提示。这个提示是可以忽略的。出现提示的原因是因为通过原封不动的打包一个目录或文件的话,在解包的时候会覆盖之前的那个一个目录,所以会出现系统自动保护机制提示删除 / 目录。如果实在看着别扭可以通过以下方法解决。

-P:保留绝对路径,即允许备份数据中含有 / 目录。

五、tar 配合 find 使用示例

打包 /root 目录下的所有文件到 /opt 目录下

你可能感兴趣的:(linux,运维,服务器)