Linux 数据压缩与归档

在 windows 下,对于压缩这个概念,其实指的的数据压缩以及数据归档。

数据压缩

bzip2工具

bzip2 工具要的文件是以 .bz2 结尾,在压缩大型的二进制文件领域非常流行。

bzip2 软件包有以下几个工具

  • bzip2:用来压缩文件
  • bzcat:用来显示压缩的文本文件的内容
  • bunzip2:用来解压压缩后的 .bz2 文件
  • bzip2recover:用来尝试恢复损毁的压缩文件

例如 bzip2 file 可以用来生成压缩数据 file.bz2,bzcat file.bz2 可以用来查看压缩的文本文件的内容,bunzip2 file.bz2 用来解压。

也可以用 bzip2 file1 file2 同时多个文件进行压缩,会自动生成 file1.bz2,file2.bz2 两个压缩文件,但是 bzip2 不能对一个目录下的文件进行压缩

bzip2 -k

bzip2 file 是可以压缩文件 file,并且自动生成压缩文件 file.bz2,而且还有一点,file 文件被移除了,这就有点不开心了,而 -k 参数可以在解压和压缩的时候,保留源文件,如 bzip2 -k file

gzip工具

gzip 是 GNU 项目发起的的压缩工具,生成的压缩文件已 .gz 结尾,软件包邮如下工具

  • gzip:用来压缩文件
  • gzcat:用来查看压缩过的文本文件的内容
  • gunzip:用来解压文件

gzip -r

gzip 的基本用法与 bzip2 类似,但是 gzip -r 可以对目录的所有文件生成压缩文件 或 解压目录下的所有压缩文件。

这里写图片描述

上图中可以看到如何用 gzip -r dir1/对目录进行压缩,再看看用 gzip -r dir1 对目录下的压缩文件进行解压

这里写图片描述

zip工具

Linux 下 zip 软件包有5个

  • zip:创建一个压缩文件,包含指定的文件和目录
  • zipcloak:创建一个加密的压缩文件,包含指定的文件和目录
  • zipnote:从 zip 文件提取批注
  • zipsplit:将一个现有zip文件分割成多个更小的固定大小的文件
  • unzip:从压缩过的 zip 文件中提取文件和目录

在命令行输入 zip 即可查看参数说明

zip 工具的强大之处在于,可以将多个文件压缩,并归档为一个文件。

这里写图片描述

zip -r

zip 工具还可以用 zip -r将一个目录进行压缩

这里写图片描述

可以看到用 zip -r 不仅对目录下的每一个文件 进行了压缩,还保留的目录的完整性,这个就是与 windows 下的压缩是一样的道理。

数据归档

bzip2, gzip 虽然可以对文件进行压缩,但是并不能把压缩后的文件进行归档,然而 zip 可以做到既压缩有归档。 但是 zip 并不是 Unix 和 Linux 中的标准归档工具,而是 tar 命令。

一般的模式,总结如下

tar mode [options] file/directory
mode 描述
-c 创建一个归档文件
-r 追加文件到已有的归档文件末尾,这个参数只能作用于未压缩文件,-f 参数是必须的
-t 列出已有归档文件的内容
-u 将比归档文件中已有的同名文件新的文件追加到该归档文件中
-x 从归档文件中提取文件

options 描述
-C 切换到指定目录
-f 输出结果到文件或设备file
-j 将输出重定向给 bzip2 命令来压缩内容
-v 在处理文件时候显示文件到标准输出
-z 将输出重定向给 gzip 命令来压缩文件

例如,创建一个归档文件

tar -cvf test.tar test1/ test2/

-f 参数后面指定归档文件名,-c 模式指的是要创建归档文件,-v 把处理文件显示的标准输出上

然后,列出 test.tar 的内容

tar -tf test.tar

然后,再提取归档文件内容

tar -xvf test.tar

但是,这些只是简单的归档操作,而并没有压缩,从上面命令看,可以加上 -z 和 -j 来压缩内容

tar -zcvf test.tgz test1/ test2/

很多开源软件下载后,都是以 .tgz 结尾的,这些就是经过压缩的的 tar 文件。

发布了44 篇原创文章 · 获赞 30 · 访问量 400万+

猜你喜欢

转载自blog.csdn.net/zwlove5280/article/details/74907183