Вывести список или извлечь файл из рекурсивного архивного файла без полного извлечения

Есть ли способ перечислить все файлы без извлечения всех файлов? AFAIK, текущие инструменты могут перечислять каталоги / файлы, но не могут обрабатывать вложенные архивы. Например, могу ли я перечислить все файлы в archive.tar.gz и извлечь только файл 4 без извлечения всех файлов? Я думаю, что теоретически это можно сделать, анализируя заголовки архива и извлекая только нужные файлы, но прежде чем я начну делать это с нуля, я хотел бы знать, существуют ли какие-либо инструменты / библиотеки для этого. Благодарю.

archive.tar.gz
    |----file1
    |----dir1
    |       |----file2
    |----archive1.tar
            |----file3
            |----archive2.tar.bz2
                    |----file4

1 ответ

Вы пробовали команду списка 7-Zip? Я не уверен, что это работает с файлами.tar, и у меня нет того, чтобы проверить. Однако, если вы посмотрите в файлах справки в 7-Zip под командами командной строки, вы найдете опцию списка и переключатели, которые идут с ним. Там основной пример:

7z l archive.zip

Тем не менее, ваш, вероятно, будет выглядеть примерно так:

"C:\Program Files\7-Zip\7z.exe" l "\\Server\Folder\Archive.7z" "-ir!OurPrograms\TestFile.txt"

В настоящее время я пытаюсь выяснить, как сделать что-то с помощью команды list в vbscript. Если вы хотите оформить заказ, перейдите по ссылке: https://community.spiceworks.com/topic/2127324-file-exists-in-7-zip-archive

Удачи!

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