Я пытаюсь использовать Средство просмотра Канала (pv
) при извлечении файлов из архива zip.
Теперь я использую
unzip -o -q myfile.zip -d test
Таким образом, я попробовал что-то как (решение, видевшее tar)
pv myfile.zip | unzip -o -q - -d test
Но это не работает. Каков был бы правильный синтаксис?
Источник проблемы не является синтаксисом, но сборкой - в различии между tar и zip.
проблема с отправляющим zip-файлом через канал основана дизайн
zip, каталог помещается в конце.ZIP файла . Это определяет, какие файлы находятся в.ZIP, и определяет, где в.ZIP, что файл расположен. Это позволяет.ZIP читателям загружать список файлов, не читая весь архив.ZIP
При обеспечении zip через канал - к каталогу получат доступ только после того, как весь файл будет предоставлен каналом, следовательно pv
должен быть завершен, прежде разархивировали, должен запуститься - которые вызывают отказ, с которым Вы сталкиваетесь.
Возьмите bsdtar
для использования распаковки через канал. Пример:
$ sudo apt install libarchive-tools
$ wget -qO- https://dl.1001fonts.com/breitkopf-fraktur.zip |sudo bsdtar -xvf- -C /usr/local/share/fonts/