Q: Как показать, разархивировали прогресс?

Как я могу показать прогресс, панель или процент, при разархивации больших файлов?

'разархивируйте zipfile.zip', не показывает информации о прогрессе?

5
задан 28 April 2017 в 07:26

3 ответа

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

unzip -o source.zip -d /destDirectory | awk 'BEGIN {ORS=" "} {print "."}'

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

unzip -o source.zip -d /destDirectory | awk 'BEGIN {ORS=" "} {if(NR%10==0)print "."}'

Просто изменяются "10" в части NR%10 к любому инкременту, который Вы хотите.

Поочередно, можно установить команду объема плазмы, которая не работает действительно хорошо с, разархивировали, но высказывает одно мнение лайнера, которое не полностью ужасно.

объем плазмы Установки:

sudo apt install pv

Разархивировали с объемом плазмы:

unzip -o source.zip -d /destDirectory | pv -l >/dev/null

Это показывает вывод, который похож на это:

28.2k 0:00:03 [9.36k/s] [        <=>                       ]

из-за способа, которым обрабатываются zip-файлы, хотя, он не покажет индикатор выполнения значимым способом как, мы пожелали бы.

9
ответ дан 23 November 2019 в 08:47

Другая альтернатива шоу архивировать/разархивировать прогресс должна использовать программу 7zip. В последней версии 16.02 (опубликовал 21.05.2016) это показывает прогресс процентом.

p7zip пакеты для версии 16.02 доступны в репозитории Ubutuntu начиная с выпуска artuful/16.10. Более старые релизы Ubuntu имеют только p7zip версию 9.20.1 без индикатора хода выполнения в репозитории. Я вручную установил версию pzip 16.02 в Ubuntu, гостеприимной/16.04 из бионического репозитория, кажется, нет никаких других зависимостей (p7zip, p7zip-полны и p7zip-rar).

7z x source.zip -o/destDirectory

Обратите внимание, что не должно быть никакого пространства между "-o" и целевым именем каталога.

1
ответ дан 23 November 2019 в 08:47

Можно создать простую обертку для этого:

function punzip {
   unzip $1 | pv -l -s $(unzip -Z -1 $1 | wc -l) > /dev/null;
}

И затем используйте, этому нравится, следует:

$ punzip file.zip

Могло бы быть полезно, если существует много маленьких файлов в архиве. Но если файлы являются большими, лучше использовать что-то вроде этого:

for f in $(unzip -Z -1 file.zip);
do
    unzip -o -c file.zip $f \
    | pv -s $(unzip -Z file.zip $f | awk '{print $4}') \
    > $f
done

Это покажет индикатор выполнения для каждого отдельного файла.

1
ответ дан 23 November 2019 в 08:47

Другие вопросы по тегам:

Похожие вопросы: