使用管道查看器解压缩

使用管道查看器解压缩

我正在尝试pv在从 zip 存档中提取文件时使用管道查看器 ()。

现在我正在使用

unzip -o -q myfile.zip -d test

所以我尝试了类似的东西(tar 的解决方案)

pv myfile.zip | unzip -o -q - -d test

但它不起作用。正确的语法是什么?

答案1

问题的根源不在于语法,而在于 tar 和 zip 之间的内在差异。

通过管道提交 zip 文件的问题是基于拉链设计

目录位于 .ZIP 文件末尾。这将识别 .ZIP 中包含哪些文件,并识别该文件在 .ZIP 中的位置。这允许 .ZIP 阅读器加载文件列表,而无需读取整个 .ZIP 档案

当通过管道提供 zip 时 - 仅在管道提供整个文件后才会访问目录,因此pv应在解压缩开始之前完成 - 这会导致您遇到的失败。

答案2

bsdtar通过管道使用 unzip 为例。例如:

$ sudo apt install libarchive-tools

$ wget -qO- https://dl.1001fonts.com/breitkopf-fraktur.zip |sudo bsdtar -xvf- -C /usr/local/share/fonts/

相关内容