1、删除压缩包中的文件
如何在不解压压缩包的情况下,删除压缩包中的某个文件?
下面通过一个例子,说明整个过程...
现在,在环境中存在一个压缩包(war)
[root@nccztsjb-node-01 tmp0]# ls -ltr total 421448 -rw-r--r-- 1 root root 431560771 Mar 31 13:50 ROOT.war [root@nccztsjb-node-01 tmp0]#
现在,要删除 WEB-INF/lib 目录下的 amqp-client-5.14.2.jar 这个文件
实现的方法:使用zip的 -d 命令
zip -d ROOT.war WEB-INF/lib/amqp-client-5.14.2.jar
执行过程:
[root@nccztsjb-node-01 tmp0]# zip -d ROOT.war WEB-INF/lib/amqp-client-5.14.2.jar deleting: WEB-INF/lib/amqp-client-5.14.2.jar [root@nccztsjb-node-01 tmp0]#
再次执行该命令:
[root@nccztsjb-node-01 tmp0]# zip -d ROOT.war WEB-INF/lib/amqp-client-5.14.2.jar zip warning: name not matched: WEB-INF/lib/amqp-client-5.14.2.jar zip error: Nothing to do! (ROOT.war) [root@nccztsjb-node-01 tmp0]#
发现,没有找到,说明已经是被删除的了。
2、向压缩包中增加文件
在 1 中,已经把这个文件删除了,如果要向zip中增加文件,该怎么做?
[root@nccztsjb-node-01 tmp0]# ls -l total 422024 -rw-r--r-- 1 root root 432147312 Mar 31 14:22 ROOT.war drwxr-xr-x 3 root root 4096 Mar 31 14:31 WEB-INF [root@nccztsjb-node-01 tmp0]# tree . ├── ROOT.war └── WEB-INF └── lib └── amqp-client-5.14.2.jar 2 directories, 2 files [root@nccztsjb-node-01 tmp0]#
把文件 amqp-client-5.14.2.jar,放入到压缩包的WEB-INF/lib/目录中
zip -m ROOT.war WEB-INF/lib/amqp-client-5.14.2.jar
Warniing !Warniing !Warniing !
# 注意:需要在本地先建好WEB-INF/lib目录 # 然后,将jar包放入这个目录,然后才能放到压缩包的指定目录中 # 否则,就放在压缩包的根目录里面了
执行过程
[root@nccztsjb-node-01 tmp0]# zip -m ROOT.war WEB-INF/lib/amqp-client-5.14.2.jar adding: WEB-INF/lib/amqp-client-5.14.2.jar (deflated 11%) [root@nccztsjb-node-01 tmp0]# [root@nccztsjb-node-01 tmp0]# [root@nccztsjb-node-01 tmp0]# ls ROOT.war WEB-INF [root@nccztsjb-node-01 tmp0]# cd WEB-INF/lib/ [root@nccztsjb-node-01 lib]# ls
执行完成后,会将本地文件给删除,也就是把amqp-client-5.14.2.jar删除。
标签:node,文件,01,zip,WEB,nccztsjb,INF,root,压缩包 From: https://www.cnblogs.com/chuanzhang053/p/17276203.html