如何使用 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,将文件拖到本地计算机,然后将其从原始压缩档案中删除。