当前位置:首页 » 文件管理 » tar的压缩率

tar的压缩率

发布时间: 2022-10-01 19:43:36

‘壹’ 说说 linux 中的压缩解压缩指令(tar)

tar 的功能类似于 Windows 中的 WinRAR。它可以将多个目录或文件打包成一个大文件,在打包的过程中还可以透过 gzip/bzip2/xz 的支持,对文件进行压缩 1

tar 的选项参数很多,主要用到的有以下这些:

还是太多,记不住怎么办? 记住下面这些最常用的命令即可:

总结一下:z 为gzip;j 为bzip2;J 为xz。c 为压缩;t 为查询;x 为解压缩。最后跟着 vf。f 一定要是最后一个,如果放在其他选项之前,tar 就会把文件名搞错。比如 tar -zcfv xxx 命令,tar 指令就会认为压缩文件名为 v!

压缩的文件名称要根据压缩算法加上响应的后缀:

只有知道了压缩算法,我们才能解的出来,你说是吗?所以文件名规范很重要。

假设我们需要备份 /etc 文件夹,把它打成一个压缩包 1 。这在实际应用中很常见,因为 /etc 文件夹存放了系统主要配置文件。在英文中完整单词是etc.,也就是后面会带上一个句点,表示“等等”之意。

接下来,我们分别使用 gzip、bzip2与 xz 算法对 /etc 文件夹进行打包压缩。

gzip 压缩指令: time tar -zpcvf /root/etc.tar.gz /etc

bzip2压缩指令: time tar -jpcvf /root/etc.tar.bz2 /etc

xz 压缩指令: time tar -Jpcvf /root/etc.tar.xz /etc

从 real 中可以看出: gzip 的压缩速度最快,而 xz 的压缩速度最慢。

从大小上来看,xz 的压缩率最高,而gzip 压缩率最差。

压缩率高,自然需要时间成本。因此需要压缩的文件夹很大,那么就要多多考虑时间成本咯。因为 gzip 压缩速度快,这也是 *.tar.gz 比较流行的原因之一。

假设有这样一种场景:我们需要打包某个文件夹(/root),但这个文件夹中的某个文件或者子文件夹不想打包进去(带 etc 前缀)。也就是希望这个文件夹部分打包,部分不打包。可以执行以下指令:

tar -zcvf /root/test.tar.gz --exclude=/root/etc* --exclude=/root/test.tar.gz /root

加了 --exclude=/root/test.tar.gz 是为了排除自身,否则压缩包中会包含一个大小为 0 的自身文件,这恐怕不是我们希望看到的:

通过 tar -ztvf test.tar.gz 就可以查看刚刚新打的压缩包中所包含的文件列表:

使用命令 tar -ztvf etc.tar.gz 查看刚刚打好的压缩包。注意要使用匹配的解压缩算法才能正确解压,比如示例中是 gz 作为后缀,所以加了 -z 选项表示使用 gzip 算法进行解压。

部分输出内容:

可以看到该命令把文件的权限、账户以及归属组也一并打印出来了。

而且还有一点很关键,这些文件都没有根目录。如果没有拿掉根目录,解压缩后的文件名就会是绝对路径, 亦即解压缩后的数据一定会被放置 到 /etc/xxx 去 1 !这样系统的 /etc 文件夹就会被覆盖,后果很严重。所以,tar 打包指令默认都会去除放入包中文件的根目录。除非通过 -P 显示要求保留这些文件的根目录。

(1)完全解压

利用 tar -zxvf etc.tar.gz -C /tmp 命令把 etc.tar.gz 解压到 /tmp。解压成功后,就会在 /tmp 下看到 /etc 文件夹。

如果需要在本地路径下直接解开,那直接执行 tar -zxvf etc.tar.gz 即可。

(2)部分解压

假设我们需要把压缩包(etc.tar.gz)中的 vconsole.conf 解压出来。可以先执行以下命令,查询出该文件所对应的相对路径:

tar -ztvf etc.tar.gz | grep ‘console’

拿到需要解压的文件路径之后,就可以执行 tar -zxvf etc.tar.gz etc/vconsole.conf

进入当前目录的 etc 文件夹,就可以看到 vconsole.conf 已经被解压出来了:

【1】 鸟哥. 鸟哥的Linux私房菜 基础学习篇[M]. 第四版. 北京: 人民邮电出版社,2018:359-362.

‘贰’ 40g文件tar -zcvf压缩后是多大

主要看压缩的是什么类型个文件
一般文本,图片文件的压缩率最大,压缩效果明显,如果是电影,镜像文件(iso,img一类)(尤其是rmvb,iso这类本来就是高压缩过的),压缩率比较低,安装包的压缩率也不高(exe,msi),因为本来就是封装过的,具体压缩比你可以用winrar压缩前查看的。
内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。

‘叁’ 文件压缩 Zip 7z TAR 有什么区别

zip是一种规范开放的压缩文件,算法不定,但主要是用 DEFLATE;
7zip和zip差不多,算法不定,主要用bzip2和lzma,而且完全开源;
(zip和7z更像是压缩容器,因为算法不是格式固定,允许支持其他压缩算法)
tar是Linux常见的一种归档文件(原生不包括压缩功能);

大小与区别
tar是无压缩的,比压缩效率,其次zip,接着7z。

优缺点
在Linux里面,tar一般和其他没有文件管理的压缩算法文件结合使用,用tar打包整个文件目录结构成一个文件,再用gz,bzip等压缩算法压缩成一次。也是Linux常见的压缩归档的处理方法。

zip相对比较老,格式规范可知,所以积累了各种加解压实现,有较好的兼容性,不过现有文件格式相对而言比较落后,还有会有文件名乱码问题(因为文件名是用非Unicode编码)

7z就新些,所用算法压缩效率也好很多,兼容性不及zip,7z的文件和管理程序都是开源的,文件格式也比较好(支持Unicode文件名),两个主要压缩算法的性能都很好,只是差何时能普及而取代zip而已。

最后,国内很多压缩软件都是支持这些算法的,2345好压、360压缩。

‘肆’ rar和tar的区别

区别如下:

RAR:是一种专利文件格式,用于数据压缩与归档打包。

TAR:Unix和类Unix系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀亦为“tar”。

tar是无压缩的,比压缩效率,gz的算法最原始,所以较低,其次zip,接着rar,7z两个主要算法基本上略优于rar,基本不相上下。

在Linux里面,tar一般和其他没有文件管理的压缩算法文件结合使用,用tar打包整个文件目录结构成一个文件,再用gz,bzip等压缩算法压缩成一次。也是Linux常见的压缩归档的处理方法。

zip相对比较老,格式规范可知,所以积累了各种加解压实现,有较好的兼容性,不过现有文件格式相对而言比较落后,还有会有文件名乱码问题(因为文件名是用非Unicode编码)。

RAR文件特点:

RAR通常情况比ZIP压缩比高,但压缩/解压缩速度较慢。

分卷压缩:压缩后分割为多个文件。

固实压缩:把要压缩的视为同一个文件以加大压缩比,代价是取用包中任何文件需解压整个压缩包。

恢复记录:加入冗余数据用于修复,在压缩包本身损坏但恢复记录够多时可对损坏压缩包进行恢复。

加密:RAR 2.0使用AES-128-cbc,(rar5.0以后为AES-256CBC)。之前RAR的加密算法为私有。目前均未被直接攻破(至少没有公开),没有密码时只有暴力破解。

‘伍’ 文件压缩比是什么意思

压缩比即压缩率,是文件压缩后的大小与压缩前的大小之比,例如:把100m的文件压缩后是90m,压缩率为90/100*100%=90%,压缩率一般是越小越好,但是压得越小,解压时间越长。

有损压缩的压缩率可达0%,无损压缩要看统计冗余,一般我们认为理想压缩的数据大小与原数据的柯氏复杂性(Gregory Chaitin)或是算法熵有关,其下界为最优描述语言(Optimal description languag),记做:K(s) = |d(s)|。

但是实际应用中,例如我们常用的zip压缩,的压缩效率远达不到理想压缩率。

(5)tar的压缩率扩展阅读

有损压缩和无损压缩

1、有损压缩

是利用了人类对图像或声波中的某些频率成分不敏感的特性,允许压缩过程中损失一定的信息;虽然不能完全恢复原始数据,但是所损失的部分对理解原始图像的影响缩小,却换来了大得多的压缩比。

有损压缩广泛应用于语音,图像和视频数据的压缩。

2、无损压缩

是利用数据的统计冗余进行压缩,可完全恢复原始数据而不引起任何失真,但压缩率是受到数据统计冗余度的理论限制,一般为2:1到5:1.这类方法广泛用于文本数据,程序和特殊应用场合的图像数据(如指纹图像,医学图像等)的压缩。

‘陆’ linux下tar打包的压缩率问题

1、只打包不压缩
tar cvf a.tar *
2、gzip算法
tar zcf a.gz *
3、bzip2算法
tar jcf a.bz2 *
4、也可以用rar
rar a all *

‘柒’ RAR ZIP 7Z TAR 哪种压缩率高

相同的文件下 7Z的压缩率最高!

‘捌’ 在Linux下如何用tar命令调用gzip进行高压缩率的打包将指定目录下的所有文件及文件夹打包到指定目录下

GZIP="-9" tar zcvf /home/homee.tgz /media

‘玖’ 跪求!ZIP.GZIP.TAR有啥区别那个压缩的程度大急!

tar是打包,不是压缩,只是把一堆文件打成一个文件而已GZIP用在HTTP协议上是一种用来改进WEB应用程序性能的技术,将网页内容压缩后再传输。zip就不用说了,主流的压缩格式。zip最新的压缩算法还是很好的,建议还是用zip格式化,全平台通用。

热点内容
死歌脚本 发布:2024-10-09 03:11:55 浏览:85
企业内网搭建电影服务器侵权吗 发布:2024-10-09 03:07:14 浏览:105
python读取jpg 发布:2024-10-09 02:50:22 浏览:154
王者荣耀的服务器ip在哪 发布:2024-10-09 02:44:48 浏览:77
安卓怎么下载李宁 发布:2024-10-09 02:31:37 浏览:343
配置不高pr哪个版本最好用 发布:2024-10-09 01:57:15 浏览:789
编译OpenWrtipv6 发布:2024-10-09 01:51:40 浏览:124
python写入字节 发布:2024-10-09 01:24:22 浏览:650
如何设置超高难度密码 发布:2024-10-09 01:19:05 浏览:180
linux只读文件修改 发布:2024-10-09 01:13:08 浏览:88