1

Как вы можете использовать 7zip для извлечения коллекции файлов .rar, которые, если их распаковать, обычно превышают размер вашего жесткого диска?

Скажем, ваш жесткий диск был 10 ГБ, если у вас был zip-архив 5 ГБ, как вы могли бы извлечь содержимое архива, не превышая 10 ГБ? Можете ли вы настроить 7zip для удаления каждой части после извлечения ее содержимого?

2 ответа2

1

Если каждый из элементов архива меньше свободного места, можно было бы извлечь каждый файл по отдельности, обработать их, а затем удалить их. Что-то вроде этого:

foo.7z содержит 10 файлов произвольного размера. Список, извлечение, удаление:

$ 7za l ../foo.7z
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2014-01-20 02:11:01 ....A        16885       189065  file.0
2014-01-20 02:11:01 ....A        40122               file.1
[...]

$ 7za l ../foo.7z | awk '/^2014/ {print $NF}' | while read a; do
    7za x ../foo.7z $a > /dev/null
    do-something-with $a
    rm -f $a
done

Если в архиве только один большой файл, можно попробовать распаковать его в stdout, а затем играть в игры с помощью dd:

 7za a archive.7z one-big-file
 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 будет пустым).

0

Наиболее разумным способом является покупка / заимствование другого жесткого диска (внутреннего или внешнего). Затем вы можете извлечь все и сделать все, что вам нужно (например, удалить оригинальный почтовый индекс).

Кроме того, вы можете сделать это вручную, в 7-ZIP есть возможность удалить. Таким образом, вы можете открыть 7-ZIP, перетащить файл (ы) на локальный компьютер и затем удалить его из исходного сжатого архива.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .