Как "распаковать" файл ZIM?

1597
Nicolas Raoul

У меня есть файл ZIM, и я хотел бы взглянуть на его содержание. В частности подсчитайте количество статей и изображений, а также просмотрите изображения.

Как это сделать? Желательно в Linux, но инструкции для других систем тоже в порядке.

Я не хочу считать изображения, открывая ZIM в Kiwix, просматривая все тысячи страниц и считая вручную.

Это не несжимаемо ни XZ, ни ZIP:

$ unxz wikivoyage_en_all_2015-09.zim unxz: wikivoyage_en_all_2015-09.zim: File format not recognized  $ zipinfo wikivoyage_en_all_2015-09.zim Archive: wikivoyage_en_all_2015-09.zim [wikivoyage_en_all_2015-09.zim] End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. zipinfo: cannot find zipfile directory in one of wikivoyage_en_all_2015-09.zim or wikivoyage_en_all_2015-09.zim.zip, and cannot find wikivoyage_en_all_2015-09.zim.ZIP, period. 
0
Ваша ссылка говорит: «Формат позволяет сжимать статьи с использованием LZMA2, как это реализовано библиотекой xz-utils». Вы пробовали использовать `unxz`? ap0 8 лет назад 0
@ ap0: Да, я пытался, он говорит `unxz: wikivoyage_en_all_2015-09.zim: Формат файла не распознан`. Nicolas Raoul 8 лет назад 0

1 ответ на вопрос

1
Nicolas Raoul

Самый простой способ - использовать команду zimdump, часть Zimlib .

Образец вывода:

zimdump -F wikivoyage_en_all_2015-09.zim count-articles: 84897 uuid: 9213375a-53f4-819c-47ed-41fc87e7028f article count: 84897 mime list pos: 80 url ptr pos: 193 title idx pos: 679369 cluster count: 40711 cluster ptr pos: 5169080 checksum pos: 468245393 checksum: 05b9bbf3b6d0c955b6ee74a3f929d911 main page: 44192 layout page: - 

Не уверен, что все это значит, но по крайней мере количество статей доступно.

-DОпция сбрасывает все в директории.

zimdump -D name_of_dir file.zim

Похожие вопросы