已经有很多的关于linux压缩文档的文章,而且写得非常好,不过我还是想再写一篇,一来是对自己所学知识的一次检验,二来希望能写得更加简单明了。
我很喜欢linux,自由开源软件也很精彩,只是初接触linux时,被它众多的压缩文档类型弄得不知所措而无从下手,如果一开始就学linux就不会觉 得有太大的困难,但是对于那些象我这样刚从windows转投linux怀抱的人来说,没有了zip和rar就找不着北了,所以我迫切地想了解和熟悉 linux压缩文档。

首先要弄清楚的一个概念,就是打包和压缩。打包就是将很多的目录和文件捆成一个文件包,这其中并没有压缩的过程。linux里很多压缩程序都是对单个文件进行压缩的,所以要打包好以后再用压缩程序将大文件压缩成小文件以方便传输。

linux世界里常用的打包程序就是tar,用tar打包的出来的文件叫tar包,后缀是.tar。tar的详细用法可以在终端用命令man tar来查看,命令的用法非常丰富,只是如果在这里一一罗列,就太繁琐了,我不想把它搞得太复杂。

我有很多的doc文档,想将它打成一个tar包,所以我在终端敲入了下面的这条指令
tar -cf abc.tar *.doc 将所有的doc文档打成一个名为abc.tar的包
-c (create) 建立新的压缩文档
-f (file) 指定压缩文档的名字

打包的过程好象什么也没有,机子到底在做了些什么?我很想看看在打包的过程中都处理了哪些文件,所以我给上面的打包命令加了一个参数,可以让我看到打包的过程
tar -cvf abc.tar *.doc
-v (verbose)详细列出处理的文件

现在我有一个名为abc.tar的包了,不过我刚才忘了将所有的jpg图片也一起打包了,如何将它们加到abc.tar包里呢?
tar -rf abc.tar *.jpg 将所有的jpg文档加入到名为abc.tar的包里
-r (append) 给已有的tar包增加文件

我把一幅名为pic01.jpg的文件重新编辑了,但是abc.tar里面的文件还是原来的没有改变,我希望把包里的文件也更新一下。
tar -uf abc.tar pic01.jpg
-u (updata) 更新已有的tar包文件

现在包也打好了,文件也更新了,我想看看包里现在有什么内容,所以敲进
tar -tf abc.tar
-t (list) 查看tar包文件的内容

我现在想把abc.tar这个包里的文件都解开来使用,那就用下面这条指令好了
tar -xf abc.tar
-x (extract) 解包

看着自己打好的包,心里挺高兴的,这下备份文件就方便多了,只是这个包的文件很多,体积挺大的,也太占地方了,我的硬盘还想多放一部我喜欢的电影,所以要把这个包压缩一下。

值得高兴的是,tar已经考虑到我的这种需要,可以在打包或解包的同时可以调用压缩程序。现在我想调用老牌的压缩程序gzip来压缩我的打包文 件。gzip是GUN组织开发的一个压缩程序,它压缩的文档是以.gz结尾,与它相对的解压程序是ungzip。我在终端敲进了这样一条指令
tar -czvf abcd.tar.gz *.doc 把所有的doc文档打包,并调用gzip压缩,生成一个gzip压缩过的包,名字是abcd.tar.gz
-z (gzip,gunzip,ungzip)
这里顺便说一下,tar不仅可以调动gzip压缩,也可以调动它来解包。
tar -xzvf abcd.tar.gz

生的的包体积比原来的小多了,不过还是不太合我意,要是可以更小一点就好了。这难不倒我,我现在用bzip2程序来压缩它,bzip2的压缩能力比gzip好多了,它压缩出来的文件都有一个.bz2的后缀,相对的解压程序是bunzip2。
tar -cjvf abcd.tar.bz2 *.doc 把所有的doc文档打包,并调用bzip2压缩,生成一个bzip2压缩过的包,名字是abcd.tar.bz2
-j (bzip2,bunzip2)
同样道理,解包就用
tar -xjvf abcd.tar.bz2

还有一个压缩程序就是compress,它压缩出来的文档有一个后缀.Z,相对的解压程序是uncompress,当然,我也可以用tar来调用它
tar -cZf abcd.tar.Z 把所有的doc文档打包,并调用compress压缩,生成一个compress压缩过的包,名字是abcd.tar.Z
-Z (compress,uncompress)
同样道理,解包就用
tar -xZf abcd.tar.Z

我现在的电脑里有好几个压缩包了,它们分别是abc.tar, abcd.tar.gz, abcd.tar.bz2, abcd.tar.Z, 我现在可以放心地把压缩包收好备份了,需要用的时候再把它们解开来,这一点都不难。
没打包的压缩文件后缀一般就是.gz, .bz2, .Z,这和我上面用的三个压缩程序是一样的,不同的只是没有.tar而已,压缩和解压就直接用相关的程序。

linux也提供对zip压缩的支持,压缩的程序是zip,解压的程序是unzip.
zip abc.zip *.doc 把所有doc文档压缩成名为abc.zip的压缩包
unzip abc.zip 解zip包

rar的话就要麻烦一点,要上网去安装一个rar for linux的软件,安装好以后会有rar和unrar两个程序。
rar a abcd *.doc 把所有doc文档压缩成rar包
rar e abcd.rar 解rar包

linux下的压缩文档其实并没有想象中的那样复杂。复杂其实就是很多的简单。

转贴于:http://forum.ubuntu.org.cn/weblog_entry.php?e=3020&tb=1&sid=ce10aaf32439f770bfc2d57c1cb0956a