我是靠谱客的博主 开朗衬衫,最近开发中收集的这篇文章主要介绍Linux替换压缩包下的文件,Linux下rar及zip压缩包中批量替换某文件脚本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本需求是自己负责的一个生产系统上,有大量以zip和rar结尾的压缩文件散落在文件系统的各个文件夹,先在需要把压缩包里包含某一个特定文件(如tftpd32.exe或Tftpd32.exe,版本较旧),全都替换成比较新的tftpd32.exe版本。压缩文件总数约5000个,需要替换的数量约1500个。

因为是生产环境,不敢轻易乱动,所以脚本考虑的因素就非常多,不允许中间执行过程出现异常,所以找到文件后实际执行替换操作之前做好备份,并且将操作过程记录日志。

以下几点需要考虑:

分别处理zip和rar文件,为减低脚本的复杂程度,分作两个shell脚本。

rar在Linux下默认是没有安装解压缩工具,下载rarlinux-x64-5.2.0.tar.gz

zip包中文件含有中文文件名,unzip测试解压缩或列出内容时出现文件名乱码,原因是zip在压缩时不记录当时的编码格式。这个问题非常棘手,乱码打进压缩包是绝对不允许的,网上有几种解压办法有几种办法都不能很好的应对我的场景:并不需要实际解压zip文件,而只需使用 l ——列出文件列表、获取目录及文件名,d ——从压缩包中直接删除某个文件,a ——向压缩包添加一个文件。实际解压到文件系统上是不是乱码我们并不关心。

最后的解决办法是使用p7zip工具,配合LANG变量解决。

向压缩包里添加新文件时,要保持里面的目录结构,则必须在文件系统上存在同样的 相对目录/文件 。所以每次都要在脚本执行目录下创建临时目录tmp_dir,还要及时删除。但如果文件在压缩包的根目录下,这个临时目录就是当前脚本执行目录。

有可能会存在一个压缩包中多个文件夹中包含不止一个t

最后

以上就是开朗衬衫为你收集整理的Linux替换压缩包下的文件,Linux下rar及zip压缩包中批量替换某文件脚本的全部内容,希望文章能够帮你解决Linux替换压缩包下的文件,Linux下rar及zip压缩包中批量替换某文件脚本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部