电脑必备
日志包解压后权限全变777,我拿四台机子对了一遍md5才发现坑
81 0 13
背景
上周运维给我甩了个 12G 的日志归档包,说是线上事故复盘要用。我随手拿 Win解压缩 双击解压,速度确实快,3 分钟不到就出来了,当时还觉得挺香。结果一进目录傻眼:所有 .log 文件的权限全变成 777,原本的 640 全丢了。
问题复现
我这人习惯先质疑再对账,直接拿四台机子(Win10 22H2、Win11 23H2 各两台)做了对照:
| 工具 | 版本 | 解压耗时(12G) | 权限保留 | 临时目录I/O峰值 |
|---|---|---|---|---|
| Win解压缩 | 5.9.1 | 2分48秒 | 全丢,统一777 | 偏高 |
| 7-Zip | 23.01 | 4分12秒 | 完整保留 | 中等 |
| tar (WSL) | 1.35 | 3分05秒 | 完整保留 | 最低 |
结论很直接:Win解压缩 快是快,但它是按 Windows 文件语义走的,POSIX 权限位它压根不认。7-Zip 用 -snl 或者直接 7z x 也未必全对,得看打包时用的是 tar --numeric-owner 还是普通 zip。
我的处理流程
- 先用
md5sum对一遍清单,确认内容没坏; - 权限这块单独用 tar 重新打一遍,加
--preserve-permissions; - 部署包里如果有可执行脚本,解压后统一
chmod +x,写进脚本里别手动改。
踩过的坑:
- Win解压缩 的临时目录默认在 C 盘 AppData,12G 的包解压时 I/O 峰值能把系统盘读写打满,日志机直接卡成 PPT。改成别的盘能缓解,但命令行参数少,只能图形界面点。
- 7-Zip 命令行支持全,
7z x -o/path -y一行搞定,还能塞进 CI 脚本里。这就是我为什么部署包一律走 7-Zip。
选型判断
普通用户日常解压个电影、文档,Win解压缩 够用,速度快、右键顺手。但涉及日志归档、部署包这种要保留权限、要脚本化的场景,我这边只认 7-Zip 或者 tar。别拿速度单一维度选工具,权限校验和临时目录 I/O 这俩维度也得算进去。
想问问大家
你们解压带权限的归档包时,是直接信工具默认行为,还是像我一样先对一遍 md5 和权限清单?有没有人试过用 7-Zip 保留 POSIX 权限的靠谱参数组合?
登录后可以为帖子点赞,但本帖内容对所有人开放阅读。
