Linux zip與unzip命令:替換war包中的某個文件

本來,想用jar命令來快速替換war包的文件的,但是,發現Ubuntu中沒有裝Java,懶癌發作,遂使用zip與unzip命令代替。



zip:壓縮命令

格式: zip    [-選項]    *.war    要壓縮的文件   例子: zip  -m  app.war   /WEB-INF/classes/com/app/business/service/platform/impl/abc.class

選項:

-m: 不檢查而替換原有文件。網上解釋:將文件壓縮而加入壓縮文件後,刪除原有文件。即把文件移動到壓縮文件中。



unzip:解壓命令

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

                                                                            --->  unzip   app.war   WEB-INF/classes/com/app/business/service/platform/impl/abc.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命令驗證文件的是否更改。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章