Linux下解压查看JAR包

问题

在生产环境,有时会有需要在线查看jar中内容的需求.

此时, unzip/tar命令都失去了用武之地.

解决办法

假如文件 fileJar.jar

#cd /tmp
#touch abc
#cd abc
#jar -xvf fileJar.jar

注意:解压到当前目录,并不会创建一个新文件夹,而是将所有jar包的内容全部解压到当前文件夹. 所以, 最好先新建一个目录

解压缩文件常用命令——linux

解压缩文件命令

1. 解压缩jar包

(1)解压 jar

解压到当前目录: jar -xvf hello-0.0.1.jar

想指定目录,直接去目标目录解压:

jar -xvf ../hello-0.0.1.jar

如果要指定目录,也可以用unzip -d 指定目录

unzip derby.war -d ./gg/ff/

(2)压缩 jar

jar -cvf test.jar ./gg
jar -cvfM0 test.jar ./gg

(3)部分参数说明

说明:

  • -c 创建war包
  • -v 显示过程信息
  • -f 指定 JAR 文件名,通常这个参数是必须的
  • -M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
  • -0 这个是阿拉伯数字,只打包不压缩的意思

2.解压缩war包

(1)解压 war

同 jar 包命令

(2)压缩 jar

同压缩 jar 包

jar -cvf test.war ./gg
jar -cvfM0 test.war ./gg

3.解压缩tar包

(1)解压 tar

解压当前目录下的tar包到当前目录:

tar -zxvf redis-6.0.16.tar.gz ./

解压指定目录下的tar包到当前目录

命令:tar -zxvf 指定目录下的tar文件

tar -zxvf ../../softWare/apache-zookeeper-3.6.3-bin.tar.gz

解压当前目录下的tar文件到了指定目录:

命令:tar -zxvf 文件名.tgz -C 指定目录

tar -zxvf redis-6.0.16.tar.gz -C ../install

解压.tar文件的话

直接 tar -xvf XXX.tar

(2)压缩 tar

命令:tar -zcvf 压缩后文件命名.tar.gz 被压缩的文件名

tar -zcvf test01.tar.gz ./test

4.解压缩zip文件

(1)压缩zip文件

把当前目录下的susu文件夹下的内容压缩为test1.zip

zip -r test1.zip ./susu

把当前目录下,susu文件夹和liu文件夹下的内容压缩为test2.zip

zip -r test2.zip susu liu

(2)解压zip文件

把当前目录下的test1.zip解压到当前目录

unzip test1.zip

同时解压多文件

把当前目录下的test1.zip、test2.zip等test开头的.zip文件同时解压到当前目录

1)用命令(注意必须加引号" "):

不加引号会报错:caution: filename not matched: test2.zip

unzip "test*.zip"

2)用命令(不用加引号)

unzip test\*.zip

3)用命令(不用加引号)

ls test*.zip | xargs -n1 unzip -o

把当前目录下的所有.zip文件同时解压到当前目录

1)解压该目录下所有的.zip文件

unzip \*.zip

总结