嵌入式Linux开发实用教程(“十二五”国家重点图书出版规划项目)
上QQ阅读APP看书,第一时间看更新

1.1.4 打包与解包、压缩与解压缩

熟悉打包与解包、压缩与解压缩的操作命令是操作 Linux 文件的必备技能。Linux 下的打包与解包、压缩与解压缩的操作命令种类繁多,本节截取常用的8个格式进行讲解。本节中,FileName是指打包、压缩之后的文件名,DirName是指待打包、压缩的文件名。

(1).tar格式

单纯的tar功能其实仅仅是打包而已,也就是说将很多文件集结成一个文件,并没有进行压缩。

        解包:tar xvf FileName.tar
        打包:tar cvf FileName.tar DirName

(2).gz格式

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。在Linux中经常会碰到后缀名为.gz的文件,它们的原型即是GZIP格式。

        解压1:gunzip FileName.gz
        解压2:gzip -d FileName.gz
        压缩:gzip FileName

(3).tar.gz格式和.tgz格式

以.tar.gz和.tgz为后缀名的压缩文件在在Linux和OSX下是非常常见的,Linux和OSX都可以直接解压使用这种压缩文件。

        解压:tar zxvf FileName.tar.gz
        压缩:tar zcvf FileName.tar.gz DirName

(4).bz2格式

压缩生成后缀名为.bz2的压缩算法使用的是“Burrows-Wheeler block sorting text”,这类算法压缩比率比较高。

        解压1:bzip2 -d FileName.bz2
        解压2:bunzip2 FileName.bz2
        压缩: bzip2 -z DirName

这里需要注意的是,当执行压缩指令之后,将会生成FileName.bz2压缩文件,同时DirName文件将会自动删除。

(5).tar.bz2格式

bzip2是一个压缩能力非常强的压缩程序,以.bz2和.tar.bz2为后缀名的压缩文件都是bzip2压缩的结果。

        解压:tar jxvf FileName.tar.bz2
        压缩:tar jcvf FileName.tar.bz2 DirName

(6).Z格式

compress 是一个相当古老的UNIX压缩指令,压缩后的文件是以.Z 作为后缀名。

        解压:uncompress FileName.Z
        压缩:compress DirName

(7).tar.Z格式

这个压缩格式可以认为是.tar打包加上.Z压缩。

        解压:tar Zxvf FileName.tar.Z
        压缩:tar Zcvf FileName.tar.Z DirName

(8).zip格式

因为格式开放而且免费,越来越多的软件支持打开Zip文件。

        解压:unzip FileName.zip
        压缩:zip FileName.zip DirName

以上8种打包压缩算法都有所区别,最终导致的结果是压缩时间和压缩大小不一样。每一种压缩格式都有其优势和不足,在何种场合应该使用何种压缩格式就得视实际情况而定了。

在程序设计当中,空间换取时间、时间换取空间的现象是非常常见的一种方法。比如在单片机的LED跑马灯中,经常使用在数组中取出想要的花样,这就是空间换取时间。

本节配套视频位于光盘中“嵌入式Linux开发实用教程视频”目录下第一章01课(Linux基本操作指令)。