Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比

本文介绍Linux环境下常见文件压缩格式,包括zip、tar、tar.gz及tar.bz2等,并演示了压缩与解压缩操作命令,对比不同格式的压缩效果。

Linux 下创建与解压zip , tar , tar .gztar .bz2 文件 及该文件 压缩 对比

刚在qq 群里面一位仁兄问到文件 压缩 的命令,平时工作中大多用解压缩 命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux 下创建与解压zip tartar.gz tar.bz2 文件及他们之间压缩率 对比,在自己的脑袋内存空间有限又不经常使用的时候以便于备忘。现整理如下:

目前Linux 下常见的压缩文件扩展名:

 *.Z        compress

程序压缩的文件(最早期使用),
压缩后取代源文件;
 *.zip      
一个夸平台的文件打包程序,适用于LinuxwindowsMac OS
系统;
 *.bz2      bzip2
程序压缩的文件;
 *.gz       gzip
程序压缩的文件;
 *.tar      tar
程序打包的文件,并没有压缩;
 *.tar.gz   tar
程序打包的文件,并经过gzip
程序的压缩;
 *.tar.bz2  tar
程序打包的文件,并经过bzip2
程序压缩。

Tips 所谓扩展名只是大家约定的通用格式 ,是为了更方便的能一眼识别出是什么压缩类型,当然你可以打包或压缩为任意格式 的后缀名,只要你愿意。

 

A *.zip 格式是大家最常见的一种,它具有夸操作系统平台性,可以同时在windowsLinuxMac Os 上使用。

大家可以用zip 格式压缩那些需要共享给windows 用户的文件。压缩与解压.ZIP 格式的文件:

[Lee@leedd.Com tmp]$ zip -r test.zip tmp
 

adding: test/ (stored 0%) 

adding: test/data-file (deflated 24%) 

adding: test/r (deflated 51%) 

下面是如果解压一个zip 文档:

[Lee@leedd.Com tmp]$ rm -rf test 
	#
为测试解压,先删除当前目录下的tmp
文件
[Lee@leedd.Com tmp]$ unzip  test.zip
 

Archive:  test.zip
  creating: test/
 inflating: test/data-file
 inflating: test/r

B) 压缩与解压*.tar*.tar.gz *.tar.bz2 格式的文件及对比:
Tar
是在Linux 中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU 以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩, 压缩是由gzip bzip2 来实现的。因此把*.tar* .tar.gz *.tar.bz2 放到一起来举例:

比如我们要把目录/var/tmp 下的test 目录打包压缩 到当前目录

[Lee@leedd tmp]$ tar -cvf   test.tar   test                ### 

仅打包,不压缩
[Lee@leedd tmp]$ tar -zcvf  test.tar.gz    test        ### 

打包后以gzip

压缩
[Lee@leedd tmp]$ tar -jcvf  test.tar.bz2   test        ### 

打包后以bzip2

压缩
[Lee@leedd tmp]$ ll 	test.tar* 	                   ### 

对比压缩后文件大小

-rw-r--r-- 1 Lee mock 10240 01-18 17:05 test.tar 

-rw-r--r-- 1 Lee mock   357 01-18 17:06 test.tar.bz2 

-rw-r--r-- 1 Lee mock   327 01-18 17:05 test.tar.gz

如何解压缩包:

[Lee@leedd tmp]$ tar -xvf   test.tar
 

[Lee@leedd tmp]$ tar -xvf   test.tar.gz


[Lee@leedd tmp]$ tar  -jxvf  test.tar.bz2

上面测试 中,每次要删除解压后的test 文件后解压打其他目录,因为如果不定义解压后目录路径和名字则默认解压到当前目录并以把压缩包名称作为文件夹名字。如果要解压到其他目录(如:/var/tmp/find )则如下:

[Lee@leedd tmp]$ tar  -jxvf  test.tar.bz2  -C  /var/tmp/find 

关于 tar.gz tar.bz2 压缩率 的问题:

*.tar.gz 在压缩时不会占用太多CPU 的,而且可以得到一个非常理想的压缩率。也会被简写成tgz

*.tar.bz2 网上好的资料说这种压缩格式是压缩率最好的、它比前面的方式要占用更多的CPU 与时间。但是经过上面的试验显示发现test.tar.gz 的大小竟然比test.tar.bz2 的更小(这是否意味者*.tar.gz 拥有更小的压缩率? 至少这次实验是这样)





<think> 根据用户的问题,用户希望找到压缩率解压速度介于tar.gztar.bz2之间的压缩方式。 根据引用[2]引用[3]提供的信息: - tar.gz压缩率不是最高,但压缩解压速度较快。 - tar.bz2压缩率较高,但压缩解压速度较慢(尤其是压缩过程耗时较长)。 因此,用户想要一个在压缩率解压速度上介于这两者之间的压缩方式。 分析引用[3]中的信息: - 压缩率: 7z > bz2 > gz > rar > zip - 压缩时间: 7z < rar < gz < zip < bz2 这里提到7z的压缩率最高,而且压缩时间最短。但是,用户要求的是介于tar.gztar.bz2之间的压缩方式。 另外,引用[2]中提到了几种压缩方式,包括zip、tartar.gztar.bz2,但没有直接提到介于两者之间的压缩方式。 然而,根据引用[3]的结论:综合来看,7z表现最好,但linux下使用的不是太多,而bz2虽然压缩率高但时间长,gz属于折中的考虑。 那么,介于tar.gztar.bz2之间的压缩方式,我们可以考虑以下: 1.压缩率上:tar.bz2 > tar.gz 2.压缩/解压速度上:tar.gz > tar.bz2 所以,用户需要的是: 压缩率tar.gz高,但比tar.bz2低;压缩/解压速度比tar.gz慢,但比tar.bz2快。 然而,常见的压缩格式中,是否有这样的压缩方式? 根据引用[3]的数据,我们可以观察到: - zip的压缩率gz低(即更差),而压缩时间比gz长(即更慢)?实际上,引用[3]中压缩时间排序:7z<rar<gz<zip<bz2,所以zip的压缩时间比gz长,比bz2短;压缩率方面,zip比gz低(即更差)。因此,zip在压缩率上比tar.gz差,在速度上比tar.gz慢,所以不满足介于两者之间(因为用户希望压缩率tar.gz高,而速度比tar.gz慢一点可以接受,但压缩率不能更低)。 另外,引用[3]提到了7z,它的压缩率最高,压缩时间最短,但这显然超过了tar.bz2压缩率最高,但时间不是最长?实际上,引用[3]中压缩时间bz2是最长的)。所以7z在压缩率上比bz2高,压缩时间比bz2短(而且比gz还短),所以它并不在两者之间,而是比两者都好。 那么,有没有其他压缩格式?比如xz格式。 引用[1]中提到了tar.xz,并说明:如果你需要最高压缩率,并且时间不是问题,可以选择tar.xz。这说明xz的压缩率bz2还要高,但压缩时间可能更长(因为要获得最高压缩率)。因此,xz在压缩率上高于bz2,在压缩时间上可能比bz2更长,所以也不在两者之间。 所以,常见的压缩格式中,似乎没有严格介于tar.gztar.bz2之间的格式?但是,我们可以考虑调整压缩级别。 实际上,很多压缩工具(如gzip, bzip2, xz)都支持不同的压缩级别(通常为1-9)。默认级别可能是6(中间级别)。我们可以通过调整压缩级别来获得介于两者之间的性能。 例如: - 对于gzip,我们可以使用较高的压缩级别(如9)来获得比默认(6)更高的压缩率,但速度会变慢。 - 对于bzip2,我们可以使用较低的压缩级别(如1)来获得比默认(9)更快的速度,但压缩率会降低。 因此,用户可能不需要更换压缩格式,而是通过调整现有压缩工具的压缩级别来实现介于两者之间的效果。 具体建议: 1. 使用gzip的高压缩级别(例如9级): 压缩率会比默认的tar.gz高(接近但不会超过bzip2的默认压缩率),但压缩速度会比默认的tar.gz慢,但应该还是比bzip2快。 解压速度方面,gzip的解压速度通常受压缩级别影响较小,所以解压速度仍然会很快。 2. 使用bzip2的低压缩级别(例如1级): 压缩率会比默认的tar.bz2低(但应该还是比默认的tar.gz高?),压缩速度会比默认的tar.bz2快,但可能还是比默认的tar.gz慢。 因此,我们可以这样回答: 在常见的压缩格式中,tar.gzgzip)tar.bz2bzip2)是两种广泛使用的格式。如果您希望压缩率解压速度介于两者之间,可以考虑以下方法: 1. 调整压缩级别: - 使用gzip的高压缩级别(例如9级)可以在保持较快解压速度的同时提高压缩率(但压缩速度会下降)。这样得到的压缩率会高于默认的tar.gz,而压缩时间会低于tar.bz2(默认级别)。命令示例: ```bash tar -cvf - directory_to_compress | gzip -9 -c > name.tar.gz ``` - 使用bzip2的低压缩级别(例如1级)可以加快压缩速度,但压缩率会降低。这样得到的压缩率会低于默认的tar.bz2,但高于默认的tar.gz,同时压缩时间会比默认的tar.bz2短。命令示例: ```bash tar -cvf - directory_to_compress | bzip2 -1 -c > name.tar.bz2 ``` 2. 考虑其他压缩格式:xz格式通常提供比bz2更高的压缩率,但压缩时间更长。如果您想要介于两者之间,可以考虑使用xz的中等压缩级别(例如6,这是默认级别,但可以尝试4或5)。不过,xz的压缩时间通常比bz2长,解压时间也较长,所以可能不是最佳选择。 3. 另外,也可以考虑使用并行压缩工具来加速压缩过程,例如: - pigz(并行gzip):可以替代gzip,使用多核进行压缩,这样即使使用高压缩级别,也能加快压缩速度。 - pbzip2(并行bzip2):可以替代bzip2,同样使用多核加速。 例如,使用pigz进行高压缩级别并行压缩: ```bash tar -cvf - directory_to_compress | pigz -9 -c > name.tar.gz ``` 这样可以在较短的时间内获得较高的压缩率。 综上所述,通过调整压缩级别或使用并行压缩工具,您可以在压缩率速度之间取得平衡。 注意:以上建议基于引用中提供的信息以及常见的压缩工具特性。 因此,回答用户:介于tar.gztar.bz2之间的压缩方式可以通过调整现有压缩工具的压缩级别来实现,或者使用并行压缩工具。 根据引用[1][2][3]的内容,我们还可以提到: - tar.gz通常使用gzip压缩gzip有1-9的压缩级别,默认是6。 - tar.bz2使用bzip2压缩bzip2有1-9的压缩级别,默认是9。 所以,用户可以根据需要选择压缩级别。 生成相关问题: 1. 如何调整gzip的压缩级别? 2. 如何安装使用pigz? 3. tar.xz的压缩率速度如何? 4.Linux下如何比较不同压缩格式的压缩率速度? 回答中需要自然地添加引用标识。 </think>根据您的需求,压缩率解压速度介于`tar.gz`(gzip)`tar.bz2`(bzip2)之间的推荐方案如下: ### 推荐压缩方式:**调整压缩级别** 通过调整现有工具的压缩级别,可实现性能平衡: 1. **`tar.gz` 使用最高压缩级别(-9)** - **效果**:压缩率接近 `tar.bz2` 默认级别(约提升5-10%),压缩速度仍快于 `tar.bz2`,解压速度保持优势[^3][^2]。 - 命令: ```bash tar -cvf - 目录名 | gzip -9 > 文件.tar.gz ``` 2. **`tar.bz2` 使用较低压缩级别(-1 到 -4)** - **效果**:压缩速度显著提升(接近 `tar.gz` 默认速度),压缩率略低于默认级别但仍优于 `tar.gz`[^2][^3]。 - 命令: ```bash tar -cvf - 目录名 | bzip2 -4 > 文件.tar.bz2 ``` ### 性能对比表 | 压缩方式 | 压缩率排名 | 压缩速度排名 | 解压速度排名 | 适用场景 | |-------------------|------------|--------------|--------------|------------------------------| | `tar.gz` (默认) | 中 | ★★★★ | ★★★★ | 速度优先,日常备份 | | `tar.gz -9` | 中高 | ★★★ | ★★★★ | 平衡压缩率解压速度 | | **`tar.bz2 -4`** | **中高** | **★★★** | **★★★** | **介于gzbz2默认值之间** | | `tar.bz2` (默认) | 高 | ★★ | ★★★ | 存储空间有限,可接受慢压缩 | | `tar.xz` (默认) | 最高 | ★ | ★★ | 极致压缩率,时间不敏感场景 | ### 补充建议 - **并行压缩工具**: 使用 `pigz`(并行gzip)或 `pbzip2`(并行bzip2)可进一步加速,例如: ```bash tar -cvf - 目录名 | pigz -9 > 文件.tar.gz # 多核加速gzip ``` - **实际测试**: 建议使用小样本数据测试不同级别(例如 `gzip -6` 到 `-9` 或 `bzip2 -1` 到 `-4`),根据硬件选择最佳平衡点[^2][^3]。 > 总结:**调整压缩级别是最灵活的方案**。若侧重解压速度选 `gzip -9`;若侧重压缩率选 `bzip2 -4`,两者均能实现介于默认 `tar.gz` `tar.bz2` 之间的性能[^1][^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值