2

Я хочу распаковать архив объемом 20 ГБ, но у меня нет еще 20-30 ГБ свободного места на жестком диске. Можно ли распаковать этот файл поверх себя?

Так что этот zip-файл будет удален после распаковки, и у меня будет распакованный контент.

2 ответа2

4

Переключатель -m (перемещение) для распаковки отсутствует, как и для zip, но вы можете извлекать файлы из архива по одному и удалять их сразу после извлечения.

Я не знаю много о OS X, но это работает с Bash на Ubuntu:

IFS=$'\n'

for file in `zipinfo -Z1 ZIPFILE`; do
    unzip ZIPFILE $file && zip -d ZIPFILE $file
done

rm ZIPFILE

unset IFS
  • IFS=$'\n' устанавливает внутренний разделитель полей на новую строку, поэтому имена файлов, содержащие пробелы, будут обрабатываться правильно.

  • zipinfo -Z1 ZIPFILE перечисляет содержимое ZIPFILE, одну за другой.

  • for file in `...`; do ??? done перебирает выходные данные ... , устанавливает переменную file в одну строку для вывода команды и выполняет ??? ,

  • unzip ZIPFILE $file && zip -d ZIPFILE $file извлекает указанный в файле файл из zipfile и удаляет его из архива (zip -d).

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

  • rm ZIPFILE удаляет (пустой) архив.

  • unset IFS восстанавливает значение по умолчанию внутреннего разделителя файлов.

0

Я считаю, что это невозможно. В вашем случае вам понадобится дополнительный носитель для отправки извлеченного контента; или переместите почтовый индекс к нему и извлеките его на жесткий диск.

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