Linux常见压缩格式Tar、Zip和Gz格式之不同

Linux常见压缩格式Tar、Zip和Gz格式之不同,第1张

Tar、Zip 和 Gz 之间的不同用最为简洁的描述来说可归纳为:

与 Unix 和类 Unix 系统一样,故事开始于很久之前的七十年代。1979 年 1 月的一个清晨,Tar 实用程序首次作为 Unix V7 的一部分正式面世。Tar 程序当时主要被设计为往磁带上批量高效写入文件的一种方式。现在,虽然现在大多数 Linux 用户都已经不知道磁带驱动器是什么鬼了,但 tarballs(tar 的昵称)仍被常用于将多个文件甚至整个目录树打包到单一文件当中。

需要 Linux/Unix 用户注意的是,普通的 tar 格式文档只进行归档 *** 作而不进行压缩。换句话说就是,如果你 tar 100 个 50kb 的文件得到的 tar 归档文件大小应该为 5000kb 左右。

使用 Tar 进行文件归档的唯一好处就是减少某种粒度磁盘空间的分配。(例如在簇大小为 4kb 的磁盘上 1 字节的文件也要占用 4kb 磁盘空间,若有 1000 个 1 字节的文件分散在此磁盘上的话,则会占用 4MB 大小,而使用 Tar 归档之后则只占用 1MB 左右大小。)

值得一提的是,tar 并非 Linux/Unix 中创建归档文件的唯一方式。程序员朋友应该知道 ar,它大多情况下主要用于创建静态库,实际它也是可用来创建其它种类归档的,例如 Debian 系统中使用的 .deb 包文件就是 ar 存档。而 macOS 的 mpkg 包是使用 gzip 压缩的 cpio 档。不过 ar 和 cpio 用起来不像 Tar 这样友好、简单,所以 tar 的受欢迎程度更高,普及更广。

虽然归档是种不错的选择,但随着时间的推移和个人 PC 时代的到来,人们意识到可通过压缩数据的方式来大量节省存储成本。所以 10 年后随 MS-DOS 出现的 zip 文档便是支持压缩的归档格式,zip 最常见的压缩方式是采用 LZ77 算法 实现的 deflate。由于它由 PKWARE 商业开发,所以 zip 格式也受专利保护多年。因此,为不侵犯到 PKWARE 的专利,同样采用 LZ77 算法的 gzip 格式被推出并广泛使用。

Unix 的哲学就是 把某事做到最好 ,所以 gzip 只被设计为压缩文件。因此,为了创建压缩归档,必需先使用 tar 创建归档,之后再对归档文件进行压缩,因此才有了 .tar.gz 文件(为遵循 8.3 MS-DOS 文件名称限制,又被简称为 .tgz)。

随着技术的不断发展,具有更高压缩比的压缩算法也一一被实现,例如:在 bzip2 中实现的 Burrows-Wheeler 算法 (.tar.bz2 存档)和 LZMA 算法 实现的 .xz 存档。

现在,用户已经可以在 Linux 和 Windows 中自由使用任何归档文件格式。由于 zip 格式已经被 Windows *** 作系统原生支持,因此这种格式特别适合跨平台环境。

命令名称:bzip2 命令所在路径:/usr/bin/bzip2 执行权限:所有用户 语法:bzip2 [压缩文件] 功能描述:压缩文件 压缩后文件格式: .bz2 bzip2命令只能对文件进行压缩和解压缩 *** 作,不能压缩目录 1, 使用 $ yum list bzip2来查看当前是否安装了bzip2软件包 2, 如果没有安装,执行$ yum install bzip2就可以了(前提是系统可以访问互联网) 3, 在确认已经安装了bzip2软件包的前提下,执行压缩和解压缩 *** 作,比如对/test/1.txt文件进行压缩,压缩后文件名称为1.txt.bz2 4, 解压时有2种方式 -- 解压命令:bunzip2 file.bz2 -- 解压命令:bzip2 -d file.bz2 可以保留原文件解压,也可以不保留原文件解压,不保留原文件解压命令为 $ bunzip2 1.txt.bz2完了解压出文件1.txt,并且原文件消失 保留原文解压命令为 $ bzip2 -dk 1.txt.bz2, 完了解压出1.txt, 并且原文件依然保留 5, bzip2可以同时压缩多个文件,压缩多个文件时,文件与文件之间空格隔开,比如: $ bzip2 1.txt 2.txt 文件可以是相对路径下的文件,也可以是绝对路径下的文件. 6, 解压时,如果当前路径下存在相同名字的文件,如果需要不提示直接覆盖,可以使用选项-f 比如: $ bzip2 -df 1.txt.bz2 否则就会提示解压不成功 以上是关于bzip2的常用方法介绍,更多内容可以通过man bzip2或者bzip2 --help来获取.

在Linux下,可以使用gzip工具将文件压缩成gz文件。下面是具体的步骤:

打开终端,进入要压缩的文件所在的目录。

运行以下命令进行压缩:

gzip 文件名

其中,文件名为要压缩的文件名,可以是绝对路径或相对路径。

例如,要将文件test.txt压缩成test.txt.gz,可以运行以下命令:

gzip test.txt

压缩完成后,原文件会被删除,只剩下压缩后的文件。如果不想删除原文件,可以使用以下命令进行压缩:

gzip -c 文件名 >文件名.gz

其中,-c选项表示将压缩后的数据输出到标准输出,>表示重定向输出到一个文件中。这样,压缩后的文件名为文件名.gz,原文件不会被删除。

例如,要将文件test.txt压缩成test.txt.gz,但不删除原文件,可以运行以下命令:

gzip -c test.txt >test.txt.gz

压缩完成后,可以使用gunzip命令解压缩gz文件,例如:

gunzip 文件名.gz

其中,文件名为要解压缩的gz文件名,解压缩后会生成一个同名的文件,去除.gz后缀。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7582114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存