7zip:提取占用硬盘空间 >= 50% 的档案

7zip:提取占用硬盘空间 >= 50% 的档案

如何使用 7zip 提取一组 .rar 文件,这些文件如果正常提取的话会超出您的 HDD 大小?

假设您的硬盘是 10GB,如果您有一个 5GB 的 zip 存档,您如何提取存档内容而不超出 10GB 的限制?您可以配置 7zip 在提取内容时删除每个部分吗?

答案1

如果每个元素档案的容量小于可用空间,可以单独提取每个文件,处理它们,然后删除它们。如下所示:

foo.7z包含 10 个任意大小的文件。列出、提取、删除:

$ 7za l../foo.7z
   日期时间属性大小压缩名称
------------------- ----- ------------ ------------ ------------------------
2014-01-20 02:11:01 ....A 16885 189065 文件.0
2014-01-20 02:11:01 ....40122 文件.1
[...]

$ 7za l ../foo.7z | awk '/^2014/ {print $NF}' | 读取 a 时;执行
    7za x ../foo.7z $a > /dev/null
    使用 $a 做某事
    rm -f $a
完毕

如果档案中只有一个大文件,则可以尝试将其提取到标准输出,然后使用以下命令玩游戏dd

7za 一个存档.7z 一个大文件
 7za x -so archive.7z 2>/dev/null | dd bs=1M count=100 2>/dev/null > part.1
 7za x -so archive.7z 2>/dev/null | dd bs=1M count=100 skip=100 2>/dev/null > part.2
 7za x -so archive.7z 2>/dev/null | dd bs=1M count=100 skip=200 2>/dev/null > part.3
 [...]

...依此类推,直到dd无法再跳过(并且part.N为空)。

答案2

最明智的方法是购买/借用另一个硬盘(内置或外置)。然后,您可以提取所有内容并执行您需要的任何操作(例如删除原始 zip)。

或者,您也可以手动执行此操作,7-ZIP 中有删除选项。因此,您可以打开 7-ZIP,将文件拖到本地计算机,然后将其从原始压缩档案中删除。

相关内容