一、自由软件的结构
一个自由软件的发行版本,总是有相同的文件结构,它通常包含下面几个文件:
INSTALL: 说明安装程序。
README: 关于这个程序的一般性信息(简介,作者,下载文件的地址, 相关文件及连结等),如果没有INSTALL文件, 通常会把简单的安装程序放在这个文件。
COPYING:其中包括了使用执照或是描述软件发地版本,有时LICENCE文件取代。
CONTRIB或CREDITS :与这个软件相关人士的列表(积极参与者,中肯的评论,辅助软件)
CHANGE :有时这个文件会叫做NEWS,纪录最近改版及除错的状况
Makefile :有这个文件才能编译软件,但是通常在配置的过程中才会产生这个文件。
|
你会经常看到一个configure或Imakefile文件,可以让我们由这个文件产生Makefile文件。
一个存放原始码的目录:也是编译完成后存放二进制文件的地方,通常命名为src。
一个存放与软件相关文件的目录(通常是Texinfo或man的格式):,通常命名为doc。
有时会有一个目录存放软件的特定资料,用来放配置文件,产生资料的范例,或是资源文件。
二、 还原安装文件(解压缩)
在Linux的世界里,最常见的压缩格式,就是gzip格式,这是由GNU计画所开发,也是一种常用的压缩工具。
Gzip常和一个叫tar的公用程序同时使用,tar是一个历史悠久的程序,以前用来将资料储存在磁带上。现在软盘和光盘已经取代磁带,但是tar还是用来产生压缩程序,它可以将所有的文件及目录结合为一个文件,这个文件可以简单的用gzip压缩。这就是为何很多tar的压文件用gzip来压缩,所以这些压缩文件的后缀名为.tar.gz(或者tgz)。
2.1 GNU Tar的使用
要解开以.tar.gz为后缀的压缩文件,先用gzip解压缩再用tar还原目录结构就可以解开了。但是GNU版本的tar会自己去直接调用gzip,所以在解压缩的时候也不用拆成两个步骤,当然也不会浪费多余的硬盘空间。
Tar的命令格式如下:
[文件名称]:这个参数是可以省略的,如果省略了,会直接将整个压缩文件解开。对以tar.gz为后缀的压缩文件,该参数不是必要的。
例如:
$ tar xvfz guile-1.3.tar.gz
-rw-r--r-- 442/1002 10555 1998-10-20 07:31 guile-1.3/Makefile.in
-rw-rw-rw- 442/1002 6668 1998-10-20 06:59 guile-1.3/README
-rw-rw-rw- 442/1002 2283 1998-02-01 22:05 guile-1.3/AUTHORS
-rw-rw-rw- 442/1002 17989 1997-05-27 00:36 guile-1.3/COPYING
-rw-rw-rw- 442/1002 28545 1998-10-20 07:05 guile-1.3/ChangeLog
-rw-rw-rw- 442/1002 9364 1997-10-25 08:34 guile-1.3/INSTALL
-rw-rw-rw- 442/1002 1223 1998-10-20 06:34 guile-1.3/Makefile.am
-rw-rw-rw- 442/1002 98432 1998-10-20 07:30 guile-1.3/NEWS
-rw-rw-rw- 442/1002 1388 1998-10-20 06:19 guile-1.3/THANKS
-rw-rw-rw- 442/1002 1151 1998-08-16 21:45 guile-1.3/TODO
...
|
tar的选项说明如下:
v: 让tar进入监视状态,在解压缩过程中,会将所有压缩文件中的文件名显示出来, 如果没有这个选项,在解压缩过程当中,将不会显示这些信息。
f:必要选项,代表要打开指定的压缩文件。否则,tar会去寻找磁带而不是文件来解压缩。
z:允许你处理gzip文件(后缀为.gz),如果没有这个选项,tar会产生错误信息,反过来说, 如果压缩文件没有经过gzip处理过,请不要加这个参数。
tar允许对压缩文件进行解压缩、读取、压缩、新增文件等动作,执行这些动作的选项如下:
x: 从压缩文件中解出文件
t: 列出压缩文件中的内容
c: 产生压缩文件,可以利用这个指令备份个人资料。
r: 在压缩文件中增加新文件,但是新加的文件不能为压缩文件。
|
2.2 bzip2与gzip
zip2是最近兴起的压缩格式,有逐渐取代gzip地位的趋势。Bzip压出的文件比gzip要小,但尚未成为标准,附属文件名.tar.bz2,是最近才出现的。
两个压缩程序有近似的语法:
果没有给文件名称,gzip及bzip2都会等着由标准输入取得资料并将结果送到标准输出,因此可以在这两个程序使用管道,两个程序也有一些相同的选项:
- -1,....,-9: 设定压缩比,数字越大,压缩比越高但同时也就越慢,天下没有白吃的午餐。
- -d: 解压缩文件案,等于使用gunzip或bunzip2。
- -c: 将压缩或解压缩文件的结果打印到标准输出。
请注意!如果没有使用-c选项,gzip及bzip2在压缩完成后会删除源文件,在bzip2可以使用-k选项防止,但gzip就没办法啦!
接下来以几个例子作为说明,首先将所有现行目录中,扩展名为txt的文件用bzip2压缩:
若想与某人分享文件的备份,但他只有gzip,所以要将最后的文件转换成为.gz格式,有些麻烦吧:(。没关系,下面这条命令无须将文件解压缩再重新压缩,只要解压缩到标准输出,利用管道,由标准输出压缩转向输出成新的备份文件:
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:
用PHP发送MIME邮件(五)
下一篇:
和luster学习在Linux创建库函数(1)
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】