То, что вы хотите сделать, это сделать, чтобы unzip
взять ZIP-файл на его стандартный ввод, а не в качестве аргумента. Это, как правило , легко поддерживается gzip
и tar
вид инструментов с -
аргументом. Но стандарт unzip
этого не делает (хотя поддерживает извлечение в трубу). Однако еще не все потеряно ...
Посмотрите на странице руководства funzip .
funzip без аргумента файла действует как фильтр; то есть предполагается, что ZIP-архив (или файл gzip) передается в стандартный ввод, и он извлекает первого члена из архива в стандартный вывод. Когда stdin приходит с устройства tty, funzip предполагает, что это не может быть поток (двоичных) сжатых данных, и вместо этого показывает краткий текст справки. Если есть аргумент файла, то ввод читается из указанного файла, а не из стандартного ввода.
Учитывая ограничение на извлечение из одного члена, funzip наиболее полезен в сочетании со вспомогательной программой-архиватором, такой как tar (1). В следующем разделе приведен пример, иллюстрирующий это использование в случае резервного копирования диска на ленту.
Это хорошо согласуется с идеей о том, что большинство Linux-архивов обычно обрабатываются TAR, а затем каким-то образом ZIP-архивом (gzip, bzip и др.). Это будет работать для вас, если у вас есть tar.ZIP
.
Стоит отметить, что funzip
автор Info-ZIP написал оригинальный автор Марк Адлер. Он пишет на странице руководства funzip:
this functionality should be incorporated into unzip itself (future release).
однако такого обновления не наблюдается. Я подозреваю, что Марк посчитал это ненужным, поскольку другие методы архивации легко работали с TAR.