Как я могу показать прогресс, панель или процент, при разархивации больших файлов?
'разархивируйте zipfile.zip', не показывает информации о прогрессе?
Не устанавливая ничто больше, самый легкий путь состоит в том, чтобы иметь его, печатают точку для каждого файла, который извлечен или обработал использование 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-файлы, хотя, он не покажет индикатор выполнения значимым способом как, мы пожелали бы.
Другая альтернатива шоу архивировать/разархивировать прогресс должна использовать программу 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" и целевым именем каталога.
Можно создать простую обертку для этого:
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
Это покажет индикатор выполнения для каждого отдельного файла.