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命令驗證文件的是否更改。

相關文章
相關標籤/搜索