gzip与patch说明

这个“gzip"就是”gun zip“啦,解压用的    “-cd”呢?     -c  就是” stdout --to-stdout “ 将结果写到标准输出;原文件保持不变 ,
用大白话来说就是解压并保留源文件。-d 就是解压缩啦。

       那么这个patch呢?我们知道它翻译过来就是 补丁 的意思。说道这里我们要介绍一下另一个工具diff
在开源的世界里大多数人都通过网络来传播和更新软件,但是 在互联网的早期,网络带宽是非常有限的,
这个时候就产生了diff和patch(diff比patch大约早十年,g.cn说的)

      diff的主要用来”生成一个文件,该文件中列出了内容发生改变的行,显示两个原始文件、修改过的行以及由于
内容没有变化而忽略掉的行“(简单的讲就是生成更新包啦)

      patch典型地用于把一个目录下的源代码文件更新到新的版本,从而就避免了下载整个新的源代码档案的必要
(就是用更新包更新啦,但有一点区别就是,它更新的是源码包,完了之后你还得重新编译安装)。

        我简单说一个diff和patch的用法:
      
  diff A B >C ,一般A是原始文件,B是修改后的文件,C称为A的补丁文件

      A 和B可以是文件和目录,如果一个是文件,另一个是目录,那么目录下同名的文件起作用。如果是两个目录,
则作用于该目录下的所有文件,但不递归,使用-r参数可以实现递归

patch的用法
  
      还是用上面的例子

  patch  A  C
      执行后,A就变成了B。如果执行之后发现补丁打错了,怎么办?这时就可以使用参数 -R (注意大小写!)
 
  patch -R B C 就可以重新还原到A了。

这里还有一个原文件的路径和名称的问题:
-p参数决定了是否使用读出的源文件名的前缀目录信息,不提供-p参数,则忽略所有目录信息,-p0(或者-p 0)表示使用全部的路径信息,
-p1将忽略第一个"/"以前的目录,依此类推。如/usr/src/linux-2.4.15/Makefile这样的文件名,在提供-p3参数时将使用linux-2.4.15/Makefile作为所要patch的文件。

posted on 2012-02-27 17:02  kudosharry  阅读(284)  评论(0编辑  收藏  举报

导航