Перечисление содержимого zip-файлов в tar-файле - PullRequest
0 голосов
/ 26 октября 2018

У меня есть файл tar.Внутри него несколько файлов zip (не gzip).Я хочу перечислить содержимое zip-файлов, ничего не распаковывая.

Я могу сделать tar tf, чтобы вывести список файлов, затем просмотреть их и выполнить unzip -l для каждого из zip-файлов.

Есть ли элегантный (однострочный) способ сделать это?

1 Ответ

0 голосов
/ 28 октября 2018

Начиная с tar , вы можете получить его для записи в стандартный вывод с помощью опции командной строки -O .

Рядом с unzip часть проблемы.Стандартные версии zip / unzip для Linux infozip не поддерживают чтение входных данных из stdin.Команда funzip , входящая в состав infozip, может читать из stdin, читает из stdin, но поддерживает только распаковку.У него нет возможности перечислить содержимое.

К счастью, файлы jar Java на самом деле являются просто zip-файлами с четко определенной структурой, а команда jar может читать из stdin и перечислять содержимое входного файла

Итак, если у вас есть tar-файл с именем my.tar , который содержит только zip-файлы, что-то вроде этого должно перечислять именафайлы во встроенных zip-файлах

tar xOf my.tar | jar -t
...