Linux压缩那些事儿
Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩。所以在了解解压缩之前就必须先了解打包命令。
Linux的打包一般都是通过tar命令来完成的,用tar来完成不同的动作是通过指定不同的参数来完成的,通常使用的也就是——x/c,这两个参数,它们的字面含义是 c——create,x——extract,创建和分包提取,另外还有一些常用的参数,比如 a 将tar添加到另外一个tar包的末尾,t 列出包中的文件,-C 将工作目录切换到指定的目录下,指定这个参数就可以将解压后的文件放到指定的目录当中去了。另外有一个重要的参数 f,这个参数可以打包的结果放在一个文件当中。
将fiel1,file2,file3打包成file.tar:
tar -cf file.tar file1 file2 file3
-c 打包模式
-f 指定将要创建的打包结果存放文件
现在有一个包file.tar将它解包:
tar -xf file.tar
-x 解包模式
-f 指定tar包文件
GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。
bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。bzip2能够进行高质量的数据压缩。它利用先进的压缩技术,能够把普通的数据文件压缩10%至15%,压缩的速度和解压的效率都非常高!支持大多数压缩格式,包括tar、gzip 等等。
压缩的作用毋庸置疑,一旦一件事物变的更为简单之后,各方面的操作就更为简单,Linux的压缩一般有几种方式,它们是gzip压缩,bzip2压缩,xz压缩。它们的输入都只有一个,下面讲一个实例,分别用这三种压缩方式来压缩file.tar,然后压缩好的压缩文件再分别用这三种方式解压,生成xfile.tar,由于分别对单纯的解压和压缩并不是本文的重点,所以有些参数就不着重介绍,但需要的时候会简单的介绍下。
压缩:gzip file.tar (将文件压缩到指定的文件当中去,可用"gzip -c file.tar > file.tar.gz") 解压:gunzip file.tar.gz (将文件压缩到指定的文件当中去,可用"gzip -c file.tar > file.tar.gz")
压缩:bzip2 -c file.tar > xifle.tar.bz2 解压:bunzip2 -cv xfile.tar.bz2 > xfile.tar
压缩: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 -czvf file.tar.gz file{1,2,3} 解压:tar -xzvf file.tar.gz
压缩:tar -cjvf file.tar.gz file{1,2,3} 解压:tar -xjvf file.tar.gz
压缩:tar -cJvf file.tar.gz file{1,2,3} 解压:tar -xJvf file.tar.gz
对于上面的文字,有点需要注意,那就是后缀名并不是必须的,Linux当中后缀名都不是必须的,这应该是一个基础点,之所以指定后缀名是为了便于区别,也方便一些粗糙的识别程序。
本文转载自:http://www.linuxprobe.com/linux-compress.html
更多Linux干货请访问:http://www.linuxprobe.com/
Linux压缩那些事儿的更多相关文章
- Linux压缩指令
1.windows系统和Linux系统的压缩文件只有zip格式的是通用的 2.windows系统可以解压几乎所有的Linux压缩格式 3.Linux压缩指令 gzip 指令 格式: gzip 压缩的文 ...
- linux 压缩文件的命令总结
Linux压缩文件的读取 *.Z compress 程序压缩的档案: *.bz2 bzip2 程序压缩的档案: *.gz gzip 程序压缩的档案: *.tar ...
- Linux压缩命令总结
2018-02-28 10:43:18 linux压缩和解压缩命令大全 tar命令:tar本身仅是一个打包的命令,不具有压缩的功能.打包后源文件仍然存在,具有将多个文件归档成一个文件的功能[root ...
- linux 压缩解压命令zip、gz、tar.gz、bz2、tar.bz2、.tar.xz
linux压缩格式:.gz windows压缩格式:.zip .rar默认情况下,windows和linux都支持zip格式,都不需要安装额外软件. .zip格式 压缩zip /usr/bin/zip ...
- Linux压缩打包方法连载之三:bzip2, bzcat 命令
Linux压缩打包方法有多种,本文集中讲解了bzip2, bzcat 命令的使用.案例说明,例如# 与 gzip 同样的,都是在计算压缩比的参数,-9 最佳,-1 最快. AD: 我们遇见Linux压 ...
- Linux 压缩文件的命令行总结
Linux压缩文件的读取 · *.Z compress 程序压缩的档案: · *.bz2 bzip2 程序压缩的档案: · *.gz gzip 程序压缩 ...
- Linux —— 压缩文件
Linux——压缩文件 为什么需要压缩文件? 文件在传输过程中,可能由于文件过大,传输所需时间过多.减少文件大小有两个明显的好处,一是可以减 少存储空间,二是通过网络传输文件时,可以减少传 ...
- 【Linux命令】Linux压缩及解压命令
Linux压缩及解压命令 一.文件打包和压缩命令介绍 linux系统文件压缩格式,常用的有*.tar.gz.*.gz.*.zip.*.tar,还有*.rar..7z..bz2..tar.xz..tar ...
- 【Linux】【二】linux 压缩文件(txt)、查看压缩文件内容、解压缩文件、
通过Xshell 压缩文件.解压缩文件 gzip tools.txt 压缩[tools.txt]文件 zcat tools.txt.gz 查看压缩文件[tools.txt.gz]内容 gunzip ...
随机推荐
- 统计单词个数及词频(C++实现)
#include<iostream> #include<fstream> #include<string> using namespace std; struct ...
- 13.KVM安装之网桥
安装必须的几个库和软件(最好下载一个163的yum源,速度快点) $ yum -y install kvm python-virtinst libvirt tunctl bridge-utils vi ...
- BW常用事务码Tcode
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C++11在时空性能方面的改进
C++11在时空性能方面的改进 这篇我们聊聊C++11在时间和空间上的改进点: 主要包括以下方面: 新增的高效容器:array.forward_list以及unordered containers: ...
- jquery mobile的事件
有个问题困扰了我两天,知道今天才解决. 那就是page的pagecreate事件,只调用一次 如果想随时更新,就要调用pageshow事件,每次都会调用, 这个事情再次告诉我,基础要扎实啊,不然会浪费 ...
- openstack 流量控制
G版的流量控制,可以在horizon通过对flavor进行配置来实现 1.有admin权限,点击admin进入管理界面:点击Flavors,选取要控制的flavor:点击more,找到View Ext ...
- [java基础]分支结构(2)
[java基础]分支结构2 switch case /** 文件路径:G:\JavaByHands\if-else\ 文件名称:switchcase.java 编写时间:2016/6/6 作 者:郑晨 ...
- Decorator
1 意图:动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更灵活. 2 别名:包装器Wrapper 3 动机:将组件嵌入到另一个对象中,由这个对象添加边框.嵌入的 ...
- oracle中DDL DML指什么?
DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...
- C++数组小知识
数组大小 我们一般情况下可以使用sizeof(数组名)/sizeof(数组元素)求数组元素个数,但需要注意的是,当我们需要调用函数处理数组时,数组的长度要在调用函数之前获取,因为调用函数的时候,数组退 ...