博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux压缩那些事儿
阅读量:4968 次
发布时间:2019-06-12

本文共 2139 字,大约阅读时间需要 7 分钟。

tar简介

Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩。所以在了解解压缩之前就必须先了解打包命令。 Linux的打包一般都是通过tar命令来完成的,用tar来完成不同的动作是通过指定不同的参数来完成的,通常使用的也就是——x/c,这两个参数,它们的字面含义是 c——create,x——extract,创建和分包提取,另外还有一些常用的参数,比如 a 将tar添加到另外一个tar包的末尾,t 列出包中的文件,-C 将工作目录切换到指定的目录下,指定这个参数就可以将解压后的文件放到指定的目录当中去了。另外有一个重要的参数 f,这个参数可以打包的结果放在一个文件当中。

tar打包和解包
1.打包文件

将fiel1,file2,file3打包成file.tar:

tar -cf file.tar file1 file2 file3

-c 打包模式 -f 指定将要创建的打包结果存放文件

2.解包文件

现在有一个包file.tar将它解包:

tar -xf file.tar

-x 解包模式 -f 指定tar包文件

压缩软件简介

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。 linux_compress_gz

bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。bzip2能够进行高质量的数据压缩。它利用先进的压缩技术,能够把普通的数据文件压缩10%至15%,压缩的速度和解压的效率都非常高!支持大多数压缩格式,包括tar、gzip 等等。 

压缩的作用毋庸置疑,一旦一件事物变的更为简单之后,各方面的操作就更为简单,Linux的压缩一般有几种方式,它们是gzip压缩,bzip2压缩,xz压缩。它们的输入都只有一个,下面讲一个实例,分别用这三种压缩方式来压缩file.tar,然后压缩好的压缩文件再分别用这三种方式解压,生成xfile.tar,由于分别对单纯的解压和压缩并不是本文的重点,所以有些参数就不着重介绍,但需要的时候会简单的介绍下。

压缩软件使用
1.用gzip操作
压缩:gzip file.tar (将文件压缩到指定的文件当中去,可用"gzip -c file.tar > file.tar.gz")解压:gunzip file.tar.gz (将文件压缩到指定的文件当中去,可用"gzip -c file.tar > file.tar.gz")
2.用bzip2操作
压缩:bzip2 -c file.tar > xifle.tar.bz2解压:bunzip2 -cv xfile.tar.bz2 > xfile.tar
3.用xz操作
压缩:xz -c file.tar > xfile.tar.xz解压:unxz -c xfile.tar.xz > xfile.tar

对于压缩来讲,压缩率显然是首要关注点,就压缩率而言,xz>bzip2>gzip,一般情况下xz能比bzip2高出15%的压缩率,比gzip高出30%的压缩率,但是另外的有一些东西在具体的场合下还是需要关心的,比如CPU占有率,xz虽然压缩比高,但是它的耗时却是最多的,这意味着占用了更多的CPU时间片,所以在选择压缩算法的时候还应该考虑到现在的首要关注点是什么,以此来选择压缩算法。

tar压缩和解压

上面分别讲解了打包和解压缩这两个过程,但这两个过程是分开的,在通常情况下,这两个过程不会分开,而是用tar包一步将多个文件打包压缩成一个压缩包,下面将分别使用tar命令调用这三种压缩方式来完成一步将多个文件打包压缩成一个压缩包。

1.用tar调用gzip将file1,file2,file3生成压缩包,并解压。
压缩:tar -czvf file.tar.gz file{1,2,3}解压:tar -xzvf file.tar.gz
2.用tar调用bzip2将file1,file2,file3生成压缩包,并解压。
压缩:tar -cjvf file.tar.gz file{1,2,3}解压:tar -xjvf file.tar.gz
3.用tar调用xz将file1,file2,file3生成压缩包,并解压。
压缩:tar -cJvf file.tar.gz file{1,2,3}解压:tar -xJvf file.tar.gz

对于上面的文字,有点需要注意,那就是后缀名并不是必须的,Linux当中后缀名都不是必须的,这应该是一个基础点,之所以指定后缀名是为了便于区别,也方便一些粗糙的识别程序。

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

转载于:https://www.cnblogs.com/linuxprobe/p/5351915.html

你可能感兴趣的文章
五. 面向对象高级特性7. 泛型通配符和类型参数的范围
查看>>
hadoop开发库webhdfs使用介绍
查看>>
document对象(二)
查看>>
Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)
查看>>
PHP——0127加登录页面,加查询,加方法,加提示框
查看>>
日期工具类
查看>>
this
查看>>
自由群,外代数和泛包络代数
查看>>
Centos 7 下部署Django + uWSGI + Nginx
查看>>
MVC系列学习(三)-EF的延迟加载
查看>>
C++函数调用方式约定stdcall,cdecl,pascal,naked,thiscall,fastcall
查看>>
HDU 2846(Trie树)
查看>>
接口测试必备技能之入门到上手
查看>>
js排序算法02——插入排序
查看>>
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)...
查看>>
SpringDataRedis java.net.UnknownHostException: 127.0.0.1 错误
查看>>
Spring Boot配置文件
查看>>
你的flume-ng的第一篇博客
查看>>
hdu 2159
查看>>
图片、JQuery学习笔记(图片的展开和伸缩)-by小雨
查看>>