V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
juejinloop
V2EX  ›  分享发现

分享一个解压缩工具(Win, Linux ),可以自动解压多重压缩包,从本地读取密码表,解压非 UTF-8 编码的 zip 文件

  •  
  •   juejinloop · 251 天前 · 1334 次点击
    这是一个创建于 251 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 支持 rar, 7z, zip, tar 格式
    2. 可以寻找并解压目标目录下的压缩包,多重压缩包会自动解压
    3. 可以从本地文本文件读取密码自动尝试解压,密码文件格式项目说明里有
    4. 可以自动重命名正确的后缀,例子,分卷压缩文件.7z.删除 001 重命名至 文件.7z.001
    5. 可以正确解压非 UTF-8 编码的 zip 文件。之前在 Linux 上一直没找到可以解压中文/日文等 WIN 系统下打包并加密的 zip 文件的方案,这个工具可以解决这个问题。

    image

    GitHub 地址: https://github.com/davuses/PyExtract

    11 条回复    2023-08-23 16:53:22 +08:00
    1423
        1
    1423  
       251 天前
    跟 unp 比较呢?
    juejinloop
        2
    juejinloop  
    OP
       251 天前
    @1423 抱歉之前没有听说过 unp, 是指 https://github.com/mitsuhiko/unp 这个项目吗? 区别和 features 都写在帖子开头了
    Jirajine
        3
    Jirajine  
       251 天前
    归根结底坑还是 Windows 导致的,Windows 是现存的唯一还不使用 utf-8 的操作系统了,脱离 Windows 后就从来没遇到过编码/字体/i18n 问题
    juejinloop
        4
    juejinloop  
    OP
       251 天前
    @Jirajine 是的,另外也是 zip 格式的缺陷,没有 header 说明文件名的编码格式。 引用一段 zhihu 的回答:
    > ZIP 在压缩与解压缩的时候默认使用了系统的本地编码,如 windows 中文环境下为 GBK ,日文环境下是 JIS ,linux 默认编码为 UTF8 等;那么在不同系统环境下,只要压缩与解压缩的编码不一致,就会出现乱码。

    比较头疼的是加密 zip 文件是 GBK/JIS 编码而且密码包含非英文的情况,需要把密码也进行对应编码才行。但是命令行执行 `unzip -O GBK -P 密码` 的话, “密码”是通过 utf-8 编码不是 GBK 编码的,所以解压会失败
    1423
        5
    1423  
       251 天前
    @juejinloop unp 在 debian arch 等发行版里都有,可以直接命令行安装
    1423
        6
    1423  
       251 天前
    @juejinloop 你没有听说过 unp,又怎么能做到事先把区别写在帖子开头呢?
    qiuai
        7
    qiuai  
       251 天前
    如果可以套个 GUI 会更好?因为命令行总感觉有点复杂,尤其是我经常解压很多压缩包,一个一个的写命令感觉好复杂
    RejaV
        8
    RejaV  
       251 天前 via Android
    用 unarchiver
    juejinloop
        9
    juejinloop  
    OP
       250 天前
    @qiuai 这个工具会自动解压目标文件夹下的压缩包,你把压缩包都放同一个目录就行了。 另外有编译好的 .exe 你也可以直接双击执行
    juejinloop
        10
    juejinloop  
    OP
       250 天前
    @RejaV 之前试过 unar ,但是我使用过程中有的 ZIP 解压会出错
    LitterGopher
        11
    LitterGopher  
       248 天前
    个人使用习惯上是 Do one thing and do it well ,拒绝“小而美”。所以从文本获取密码,文件重命名,编码问题等我通常都是通过新写一个 shell 去完成,而不是找一个新工具去搞定——如果一个 shell 常用就想办法抽象为更通用一点的写法,然后写成 function 放在 .bashrc 。到此其实依旧力有未逮,所以我一般还会自己去写一些小命令行工具。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2828 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:05 · PVG 23:05 · LAX 08:05 · JFK 11:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.