Linux zip与unzip命令:替换war包中的某个文件

原本,想用jar命令来快速替换war包的文件的,可是,发现Ubuntu中没有装Java,懒癌发做,遂使用zip与unzip命令代替。app



zip:压缩命令ide

格式: zip    [-选项]    *.war    要压缩的文件   例子: zip  -m  app.war   /WEB-INF/classes/com/app/business/service/platform/impl/abc.classspa

选项:orm

-m: 不检查而替换原有文件。网上解释:将文件压缩而加入压缩文件后,删除原有文件。即把文件移动到压缩文件中。ip



unzip:解压命令md5

格式: unzip    [-选项]    *.war    要解压的文件   例子: unzip  -o  app.war   WEB-INF/classes/com/app/business/service/platform/impl/abc.class  it

                                                                            --->  unzip   app.war   WEB-INF/classes/com/app/business/service/platform/impl/abc.classform

选项:class

-l  (list): 不解压而查看war包中的文件打包

-v        : 执行是时显示详细的信息

-f  (fresh): 覆盖原有文件

-o  (overwrite): 强制覆盖,不提示是否覆盖

-u  (update): 已有的,覆盖;未有的,新建

-n  (never): 不覆盖已有文件



包:app.war

要替换的文件:/WEB-INF/classes/com/app/business/service/platform/impl/abc.class


步骤:(颜色为命令,非颜色为结果)

1. 使用unzip、grep命令将war包中要替换的文件先找出来,将路径一并解压出来

    a. unzip -l app.war |grep abc.class     --->   unzip -v app.war |grep abc.class    /   unzip -lv app.war |grep abc.class 

        49974  2019-08-02 02:28   WEB-INF/classes/com/app/business/service/platform/impl/abc.class


    b. unzip   app.war   WEB-INF/classes/com/app/business/service/platform/impl/abc.class

        Archive:  app.war

          inflating: WEB-INF/classes/com/app/business/service/platform/impl/abc.class


2. 使用move/cp命令将新文件替换解压出来的旧文件

    cp   abc.class    WEB-INF/classes/com/app/business/service/platform/impl/


3. 使用zip命令将路径下的新文件打包入war包

    zip   -m  app.war   WEB-INF/classes/com/app/business/service/platform/impl/abc.class

    updating: WEB-INF/classes/com/tmri/rural/business/service/platform/impl/AbstractBusinessEntityManagementServiceImpl.class (deflated 60%)


固然,还能够使用md5sum命令验证文件的是否更改。

相关文章
相关标签/搜索