登录 立即注册

首页 > 绿虎论坛 > 电脑 > 讨论/求助 (发帖)

标题: 如何直接解压嵌套的压缩包?

作者: @Ta

时间: 2023-02-01

点击: 14363

有 25 个 4GB 的 outer.7z.001 ~ outer.7z.025,里面有个 inner.rar,再里面则是需要的文件。

全部解压,需要写 200 GB 的固态。

除了买 128 GB 内存条外,有没有可以少写一点固态的解压办法?

比如,有没有能挂载 .7z .rar 文件啥的?


[隐藏样式|查看源码]


『回复列表(11|隐藏机器人聊天)』

2. @无名啊,我明白了,第一个压缩包中里面只有一个inner.rar压缩包所以要提取inner.rar中的文件只能整个解压inner.rar这个文件。
还有你干嘛那么心疼你的固态现在固态那么便宜,固态的售后不是按照质保期和twb那个先到按那个吗?你要是单纯为了减少固态硬盘的写入,那建议你买一块机械硬盘或者micro sd储存卡(终身固保)。
(/@Ta/2023-02-01 21:58//)

3.

@都是假的,网上下的,我也没辙。。有些人还用几GB字典去压 inner.rar 呢。。(压不动,解压时还要再吃我几GB内存。。)

@上善若水,写入大小是 inner.rar 和里面的文件。我不需要中间文件 inner.rar

笔电的固态,换起来估计会麻烦(预装的分区有没有笔电自己的东西,我也不清楚)

所以能延长点寿命,就尽量延长下了

(/@Ta/2023-02-01 22:04//)

4. @无名啊,那就放在别的设备上解压呗
(/@Ta/2023-02-01 22:09//)

5.

@上善若水,那肯定没问题。

但还是先来请教请教,看有没有减少写入损耗的方法。

比如,如果是 inner.zip 的话,使用支持流式读取 zip 的工具(如 bsdtarbusybox 里的 tar,稍稍动动手写一行代码7z ... | bsdtar ...,就能避免巨大的写入损耗,说实在是有点爽的事情。。

(/@Ta/2023-02-01 22:52//)

6.

@无名啊,Linux的unrar也可以流式调用:

sudo apt install p7zip unrar
7z e -so test.7z.001 inner.rar | unrar x -si -o"+" .
-so 解压到标准输出
-si 从标准输入读取压缩包
-o"+" 解压时覆盖所有已存在文件(没有该选项,文件重名时会退出)
(/@Ta/2023-02-02 09:43//)

7.

@老虎会游泳,有效!

奇怪的是,我在 WinRAR 的帮助手册上,找不到这个命令行选项

image.png(52.88 KB)

(/@Ta/2023-02-02 11:28//)

8.

@无名啊,据我所知Windows的标准输入和标准输出不是二进制安全的,可能无法用于文件传输。只有Linux可以。

(/@Ta/2023-02-02 13:36//)

9.

@老虎会游泳,不会吧?msys2 上的命令行工具,我用的没啥问题呀

(/@Ta/2023-02-02 12:18//)

10.
层主 @老虎会游泳 于 2023-02-02 13:33 删除了该楼层。
(/@Ta/2023-02-02 13:21//
被锁定
)

11.

@无名啊,看起来有方法把标准输入和标准输出设置为二进制模式。

https://learn.microsoft.com/zh-cn/cpp/c-runtime-library/reference/setmode?view=msvc-170#example-use-_setmode-to-change-stdin

_setmode( _fileno( stdin ), _O_BINARY );

不过Win32控制台依然是特殊的,因为Win32窗口程序默认没有标准输入和标准输出,而启动Win32控制台程序则总会一并启动一个控制台宿主进程(conhost.exe)并显示黑窗口。所以Windows中的窗口程序和控制台程序往往是两个不同的二进制,就算功能相同(比如java.exejavaw.exe)。

(/@Ta/2023-02-02 13:30//)

12.

@无名啊,哦对了,unrar有两个版本,在Linux环境里安装的通常是GNU版本,可能和WinRAR附带的那个不一样。

(/@Ta/2023-02-02 13:32//)

回复需要登录

12月1日 05:44 星期天

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1