首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何提取损坏的压缩包文件

如何提取损坏的压缩包文件

作者头像
HHTjim 部落格
发布2022-09-26 10:36:22
发布2022-09-26 10:36:22
2.6K0
举报
文章被收录于专栏:HHTjim'S 部落格HHTjim'S 部落格

如何提取损坏的压缩包文件

作者:matrix 被围观: 4,327 次 发布时间:2020-05-19 分类:零零星星 | 2 条评论 »

这是一个创建于 835 天前的主题,其中的信息可能已经有所发展或是发生改变。

有些压缩包损坏之后无法正常解压,尝试修复压缩包之后再忽略错误解压其实就可以提取出所有文件了,但是损坏的文件取出来不能保证完整性。

待修复文件: 华为主题压缩包 3.zip

尝试提取/unlock/manifest.xml文件

方法1. windows下手动操作

windows下尝试使用7z直接打开会提示错误,看不到里面任何内容。

  1. 先用WinRAR修复压缩包:工具 -> 修复压缩文件
  2. 7zip工具打开修复之后的压缩包,然后点击顶部的提取按钮就可以取出来啦

方法2. *unix下执行脚本

  • 确保正常使用zip,unzip命令
  • 下面代码保存为repair_zip.sh文件
  • 执行bash repair_zip.sh bla-bla.zip

尝试解压提取出bla-bla.zip所有文件,资料会提取到相同位置的bla-bla_repaired目录。

macos下测试可用。

gist: https://gist.github.com/Hootrix/1d5d96d95dc5238e170405c77d54f02f

代码语言:javascript
复制
#!/bin/bash
file=$1
dir=`dirname $file`

# 检测文件存在
if [ ! -f $file ];then
    echo "404: file not found"
    exit 1
fi

# 检测zip命令
if ! type "zip" > /dev/null; then
    echo "500: command not found. Please execute install >  apt-get/yum install zip"
    exit 1
fi


file_name=`echo $file | awk -F . '{print $1}'|awk -F '/' '{print $(NF)}'` # 截取文件名
save_path=$dir/"$file_name"_repaired # 修复后提取存放路径
echo -e "extract file: $file"
echo -e "processing... ... "

repaired_zip_package=$dir/"$file_name"_repaired.zip #修复后的压缩包路径

zip -FF $file  --out $repaired_zip_package && unzip $repaired_zip_package -d $save_path 
sleep 1;unlink $repaired_zip_package

echo -e " \e[0;32msuccessful: $save_path\e[0m"

参考:

https://superuser.com/questions/23290/terminal-tool-linux-for-repair-corrupted-zip-files

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何提取损坏的压缩包文件
    • 方法1. windows下手动操作
    • 方法2. *unix下执行脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档