如何“解压缩” ZIM 文件?

如何“解压缩” ZIM 文件?

我有一个以星航空文件并想查看其内容。特别是计算文章和图片的数量,并可能浏览图片。

怎么做?最好在 Linux 上,但其他系统的说明也可以。

我不想通过在 Kiwix 中打开 ZIM 并浏览所有数千页并手动计数来计算图像。

它不能通过 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.

答案1

我尝试在 Mac 上按照上面@Nicolas Raoul 的回答操作,但从zimdump源代码构建时遇到了问题,并且找不到任何二进制文件。

经过一番挖掘,我发现这是一个Alpine 中的二进制文件,所以对我来说最简单的方法是在 docker 中zimdump运行。zimdump

Dockerfile创建一个名为以下内​​容的文本文件:

FROM alpine:edge

# add the repository that contains libzim and zim-tools
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories

# Installing dependencies
RUN apk update && apk add libzim zim-tools

然后运行:

docker build - < Dockerfile

构建docker镜像:

docker build -t zimdump .

完成所有步骤来挂载并运行 zimpdump:

docker run -v $(pwd):/app -w /app -it zimdump zimdump -D . file.zim

(有人建议这种方法docker run -v $(pwd):/app -w /app -it zimdump dump --dir=. file.zim效果更好)

答案2

最简单的方法是使用zim转储命令,部分津巴布韦

示例输出:

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 目录名称文件.zim

相关内容