您的位置:首页 > 运维架构 > Linux

linux基础学习-文件的压缩和打包

2012-04-15 14:47 736 查看
1. 文件压缩技术的原理

首先简单描述一下文件压缩技术 的基本原理:计算机最小的计量单位是位(bit),1 byte=8 bit,假如我们要存储一个byte类型的变量的值是1,则其转换成二进制的形式是:0000 0001,前面的7个0都是“空的”,而计算机信息存储的最小单位是byte(信息传递的最小单位是bit),得到字节的类型才能被计算机系统识别,因此前面的7个0就是未填满的空间。如此看来,数据之间存储并不是连续的,压缩技术就是采用一定的算法把那些没有使用到的空间(如上例中的"0")找出来,并填充,让整个文件占用的容量下降。压缩过的文件无法被计算机系统直接使用,需解压缩处理,解压缩就是把压缩文件还原回"未压缩"的样子。

2. linux 常用压缩命令

下面是目前linux下一些常见的压缩文件的扩展名:

*.bz2 (bzip2程序压缩的文件)

*.gz (gzip程序压缩的文件)

*.tar (tar程序打包的文件,并没压缩)

*.tar.gz (tar程序打包的文件,并经过gzip压缩)

*.tar.bz2 (tar程序打包的文件,并经过bzip2压缩)

gzip是GNU计划开发出的用来开取代"compress(压缩文件扩展名是*.Z)"的压缩命令,bzip2的"压缩比"比gzip更好,tar是一个文件打包工具,可以将多个文件或目录打包成一个文件,但并没有进行压缩.

gzip和bzip2只能针对一个文件来进行压缩和解压缩,所以一般将压缩工具跟打包工具tar结合起来使用,更方便更强大.

下面分别来了解一下各压缩命令,简单介绍一下各命令的使用方式,更多的参数和功能可以查看对应的帮助文档:如gzip --help

(1)gzip和zcat

gzip是用来压缩和解压缩扩展名是“*.gz”的文件的命令,后面加上相应的参数执行相应的命令(通过gzip --help可详细了解),zcat是用来读取压缩文件内容的(可用来查看压缩文件的内部结构,跟文本文件读取命令cat对应)。

下面列举了一些常用的参数

-c (将压缩的数据输出到屏幕上,不改变原来的目录和文件)

-d (解压缩参数)

-t (检测文件是否出错)

-# (压缩等级:-1 速度最快,压缩比最差;-9 压缩比最好,但速度最慢,默认是-6)

例子:(1.1) 将/home/alexzhou/ 下的test.txt文件进行压缩



从上图可以看到,生成了test.txt.gz文件,gzip未使用参数时,并未保留原来的test.txt文件

解压缩命令:gzip -d test.txt.gz 这样就会把test.txt.gz文件还原成test.txt文件

(1.2) 查看压缩文件test.txt.gz的内容



此时就在终端打印出了test.txt文件的内容

(1.3) 将test.txt按最佳压缩比压缩,并保留test.txt文件



从上图可知,此时压缩文件test.txt.gz和原文件test.txt同时存在

(2) bzip2和bzcat

下面列举了一些常用的参数

-c (将压缩过程产生的数据输出到屏幕上)

-d (解压缩参数)

-z (压缩的参数)

-# (压缩等级:跟gzip一样,-1 速度最快,压缩比最差;-9 压缩比最好,但速度最慢)

bzip2会自动将文件扩展名设置为.bz2,可以使用bzcat读取压缩文件的内容。

bzip2和bzcat的使用方式跟gzip和zcat差不多,这里就不举例了。解压缩的命令为bzip2 -d *.bz2,也可以使用bunzip2代替。

(3)tar

这是一个非常有用的创建档案文件和备份文件的工具,可以把多个目录或文件整合成一个文件,跟压缩工具一起使用非常方便。

下面列举了一些常用的参数(更多的参数命令请使用:tar --help)

-c (创建档案文件的参数命令,create的意思)

-x (从档案文件中释放文件的参数命令)

-t(列出档案文件的内容)

ps:在使用时,c/x/t三个参数命令不能同时存在

-z (用gzip来压缩/解压缩文件)

-j (用bzip2来压缩/解压缩文件)

-v (创建档案文件和压缩的过程中显示文件信息)

例子:(3.1)将~/test目录下的所有文件打包成~/test.tar(仅打包,不压缩)



(3.2)将~/test目录下的所有文件打包后并以gzip压缩



为了便于理解,一般把扩展名命名为*.tar.gz 或*.tar.bz2

(3.3)将~/test目录下的所有文件打包后并以bzip2压缩



(3.4)查看test.tar.gz和test.tar.bz2文件内有哪些文件



(3.5)解压缩test.tar.gz和test.tar.bz2文件



总结:在使用linux的过程中,tar、gzip、bzip2命令是最常用的备份打包和压缩/解压缩 工具,在熟悉的过程中可以通过查看对应的帮助命令(xx --help)了解更多参数命令

参考资料:《鸟哥的linux私房菜基础学习篇》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: