如何直接提取压缩包内指定文件并复制,无需保存全部解压内容
直接提取压缩包内指定文件并复制的方法
当然可以不用解压整个包就能拿到目标文件,这里有两种简单方法:
- 直接将文件内容写入目标路径(最推荐)
用unzip的-p参数可以把压缩包里指定文件的内容直接输出到标准输出,再通过重定向写入目标位置,全程不会生成多余的目录和文件:
unzip -p mysql-api.jpi WEB-INF/lib/mysql-connector-j-8.4.0.jar > /var/lib/jenkins/war/WEB-INF/lib/mysql-connector-j-8.4.0.jar
- 临时提取后复制再清理
如果需要先确认文件内容,也可以先把目标文件提取到临时目录,复制完成后再删掉临时文件:
# 只提取指定文件到临时目录/tmp unzip mysql-api.jpi WEB-INF/lib/mysql-connector-j-8.4.0.jar -d /tmp # 复制到目标路径 cp /tmp/WEB-INF/lib/mysql-connector-j-8.4.0.jar /var/lib/jenkins/war/WEB-INF/lib # 删除临时生成的目录 rm -rf /tmp/WEB-INF
第一个方法更高效,不需要额外的清理步骤,完全符合你不想保留多余解压文件的需求。
内容的提问来源于stack exchange,提问作者anechkayf
相关产品推荐
相关产品推荐

