JAR包是Java中所特有一种压缩文档,我们可以通过相关命令解压jar包,下面由我为大家整理了linux下解压jar包命令的相关知识,希望大家如果觉得本站发布的文章不错,请转发分享给您身边的朋友,您的支持是我们最大的动力.
第一段:linux解压jar包命令——jar命令详解
jar命令选项:
jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名...
其中{ctxu}这四个选项必须选其一.[v f m e 0 M i ]是可选选项,文件名也是必须的.
-c 创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-f 指定jar包的文件名
-v 生成详细的报造,并输出至标准设备
-m 指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置)
-0 产生jar包时不对其中的内容进行压缩处理
-M 不产生所有文件的清单文件(Manifest.mf).这个参数与忽略掉-m参数的设置
-i 为指定的jar文件创建索引文件
-C 表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命令
第二段:linux解压jar包命令——jar使用范例
(1)创建jar包
$ jar cf hello.jar hello 利用test目录生成hello.jar包,如hello.jar存在,则覆盖
$ jar cvf hello.jar hello 利用hello目录创建hello.jar包,并显示创建过程
例:E:\jar cvf hello.jar hello
标明清单(manifest)
增加:hello/(读入= 0) (写出= 0)(存储了 0%)
$ jar tvf hello.jar 查看hello.jar包的内容
指定的jar包必须真实存在,否则会发生FileNoutFoundException.
$ jar xvf hello.jar 解压hello.jar至当前目录
$ jar uf hello.jar HelloWorld.java 将HelloWorld.java添加到hello.jar包中
$ jar cvf0 hello.jar *.class 利用当前目录中所有的.class文件生成一个不压缩jar包
$ jar cvfm hello.jar manifest.mf hello
创建的jar包多了一个META-INF目录,META-INF止录下多了一个manifest.mf文件,至于manifest.mf的作用,后面会提到.
$ jar cvfM hello.jar hello 生成的jar包中不包括META-INF目录及manifest.mf文件
$ jar cvfm hello.jar mymanifest.mf -C hello/
表示在切换到hello目录下然后再执行jar命令
(10)-i为jar文件生成索引列表
当一个jar包中的内容很好的时候,你可以给它生成一个索引文件,这样看起来很省事.
$ jar i hello.jar
执行完这条命令后,它会在hello.jar包的META-INF文件夹下生成一个名为INDEX.LIST的索引文件,
它会生成一个列表,最上边为jar包名.
(11)导出解压列表
jar tvf hello.jar hello.txt
如果你想查看解压一个jar的详细过程,而这个jar包又很大,屏幕信息会一闪而过,
这时你可以把列表输出到一个文件中,慢慢欣赏!
例如原目录结构如下:
hello
|---com
|---org
你本想只把com目录和org目录打包,而这时jar命令会连同hello目洋也一块打包进.
这点大家要注意.jar命令生成的压缩文件会包含它后边出的目录.我们应该进入到hello目录再执行jar命令.
注意:manifest.mf这个文件名,用户可以任指定,但jar命令只认识Manifest.mf,它会对用户指定的文件名进行相应在的转换,这不需用户担心.
第三段:linux解压jar包命令——JAR命令使用技巧
(1) jar创建压ZIP文件
jar cvfM TestZIP.jar test 加M参数为了不生成META-INF相关内容
然后将TestZIP.jar改为TestZIP.zip就可以,是不是很简单....
上边我们已经说过了,说JAR文件是一种特殊的压缩文件,所以它当然可以用我们常用的一些解压缩工具来解了,
至于怎么解,这就不用我说了吧.
我们已经说过JAR包与ZIP包主要区别就是JAR包中多一个META-INF的目录,
META-INF目录下有一个manifest.mf文件,我们只要建立好相关的目录一压缩就可以了.
目录的结构如下:
TestJar
|--META-INF
|--manifest.mf
|--相关的类文件
注意:还应该在manifest.mf填写内容,不会写?照着一个已有的抄不就行了
tar 的选项参数很多,主要用到的有以下这些:
还是太多,记不住怎么办? 记住下面这些最常用的命令即可:
压缩的文件名称要根据压缩算法加上响应的后缀:
只有知道了压缩算法,我们才能解的出来,你说是吗?所以文件名规范很重要.
假设我们需要备份 /etc 文件夹,把它打成一个压缩包 1 .这在实际应用中很常见,因为 /etc 文件夹存放了系统主要配置文件.在英文中完整单词是etc.,也就是后面会带上一个句点,表示"等等"之意.
gzip 压缩指令: time tar -zpcvf /root/etc.tar.gz /etc
xz 压缩指令: time tar -Jpcvf /root/etc.tar.xz /etc
从 real 中可以看出: gzip 的压缩速度最快,而 xz 的压缩速度最慢.
从大小上来看,xz 的压缩率最高,而gzip 压缩率最差.
压缩率高,自然需要时间成本.所以呢需要压缩的文件夹很大,那么就要多多考虑时间成本咯.因为 gzip 压缩速度快,这也是 *.tar.gz 比较流行的原因之一.
假设有这样一种场景:我们需要打包某个文件夹(/root),但这个文件夹中的某个文件或者子文件夹不想打包进去(带 etc 前缀).也就是希望这个文件夹部分打包,部分不打包.可以执行以下指令:
tar -zcvf /root/test.tar.gz --exclude=/root/etc* --exclude=/root/test.tar.gz /root
加了 --exclude=/root/test.tar.gz 是为了排除自身,否则压缩包中会包含一个大小为 0 的自身文件,这恐怕不是我们希望看到的:
通过 tar -ztvf test.tar.gz 就可以查看刚刚新打的压缩包中所包含的文件列表:
使用命令 tar -ztvf etc.tar.gz 查看刚刚打好的压缩包.注意要使用匹配的解压缩算法才能正确解压,比如示例中是 gz 作为后缀,所以加了 -z 选项表示使用 gzip 算法进行解压.
部分输出内容:
可以看到该命令把文件的权限、账户以及归属组也一并打印出来了.
而且还有一点很关键,这些文件都没有根目录.如果没有拿掉根目录,解压缩后的文件名就会是绝对路径, 亦即解压缩后的数据一定会被放置 到 /etc/xxx 去 1 !这样系统的 /etc 文件夹就会被覆盖,后果很严重.所以,tar 打包指令默认都会去除放入包中文件的根目录.除非通过 -P 显示要求保留这些文件的根目录.
(1)完全解压
利用 tar -zxvf etc.tar.gz -C /tmp 命令把 etc.tar.gz 解压到 /tmp.解压成功后,就会在 /tmp 下看到 /etc 文件夹.
如果需要在本地路径下直接解开,那直接执行 tar -zxvf etc.tar.gz 即可.
假设我们需要把压缩包(etc.tar.gz)中的 vconsole.conf 解压出来.可以先执行以下命令,查询出该文件所对应的相对路径:
tar -ztvf etc.tar.gz | grep 'console'
拿到需要解压的文件路径之后,就可以执行 tar -zxvf etc.tar.gz etc/vconsole.conf
进入当前目录的 etc 文件夹,就可以看到 vconsole.conf 已经被解压出来了:
unzip [参数] 压缩文件 [压缩包中将被释放的文件]
解压zip压缩包文件
-P 密码 zip压缩包的密码
-d 路径 指定解压路径
-n 解压缩时不覆盖原有文件
-f 覆盖原有文件
-o 不经询问,直接覆盖原有文件
-u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
-l 显示压缩文件内所包含的文件 <
-t 检查压缩文件是否正确理里排除压缩包中的指定文
unzip -p 'password' test.zip
Linux----UnZip命令 功能说明:解压缩zip文件语 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P 密码][.zip文件][文件][-d 目录][-x 文件] 或 unzip [-Z]补充说明:unzip为.zip压缩文件的解压缩程序.参 数:-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换.-f 更新现有的文件.-l 显示压缩文件内所包含的文件.-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换.-t 检查压缩文件是否正确.-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中.-v 执行是时显示详细的信息.-z 仅显示压缩文件的备注文字.-a 对文本文件进行必要的字符转换.-b 不要对文本文件进行字符转换. -C 压缩文件中的文件名称区分大小写.-j 不处理压缩文件中原有的目录路径.-L 将压缩文件中的全部文件名改为小写.-M 将输出结果送到more程序处理.-n 解压缩时不要覆盖原有的文件.-o 不必先询问用户,unzip执行后覆盖原有文件.-P密码 使用zip的密码选项.-q 执行时不显示任何信息.-s 将文件名中的空白字符转换为底线字符.-V 保留VMS的文件版本信息.-X 解压缩时同时回存文件原来的UID/GID.[.zip文件] 指定.zip压缩文件.[文件] 指定要处理.zip压缩文件中的哪些文件.-d目录 指定文件解压缩后所要存储的目录.-x文件 指定不要处理.zip压缩文件中的哪些文件.-Z unzip -Z等于执行zipinfo指令. Linux命令:gunzip 功能说明:解压文件.语 法:gunzip [-acfhlLnNqrtvV][-s 压缩字尾字符串][文件...] 或 gunzip [-acfhlLnNqrtvV][-s 压缩字尾字符串][目录]补充说明:gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为".gz".事实上gunzip就是gzip的硬连接,所以呢不论是压缩或解压缩,都可通过gzip指令单独完成. 参 数: -a或--ascii 使用ASCII文字模式. -c或--stdout或--to-stdout 把解压后的文件输出到标准输出设备. -f或-force 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接. -h或--help 在线帮助. -l或--list 列出压缩文件的linux解压覆盖命令相关咨询. -L或--license 显示版本与版权信息. -n或--no-name 解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理. -N或--name 解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上. -q或--quiet 不显示警告信息. -r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理. -S压缩字尾字符串或--suffix压缩字尾字符串 更改压缩字尾字符串. -t或--test 测试压缩文件是否正确无误. -v或--verbose 显示指令执行过程. -V或--version 显示版本信息.
参数含义:
x 代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)
-r 表示递归解压缩所有的子文件夹
-o 是指定解压到的目录,-o后是没有空格的,直接接目录.这一点需要注意.
a 代表添加文件/文件夹到压缩包
-r 表示递归所有的子文件夹
linux怎么解压zip包,操作方法如下.
设备:华为笔记本.
系统:linux.
软件:zip文件.
①.、首先在电脑中,连接到linux远程主机,并进入zip文件所在目录,如下图所示.
以上就是土嘎嘎小编为大家整理的linux解压覆盖命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!