内容

名称

streamzip - 从标准输入创建 zip 文件

概要

producer | streamzip [opts] | consumer
producer | streamzip [opts] -zipfile=output.zip

描述

该程序将从stdin读取数据,将其压缩到 zip 容器中,并默认将流式 zip 文件写入stdout。不会创建任何临时文件。

写入stdout的 zip 容器必须以流式格式写入。大多数读取 Zip 文件的程序都可以处理流式 zip 文件,但如果互操作性很重要,并且您的工作流程允许您将 zip 文件直接写入磁盘,则可以使用zipfile选项创建非流式 zip 文件。

选项

-zip64

创建符合 Zip64 标准的 zip 容器。如果输入大于 4Gig,请使用此选项。

默认情况下禁用。

-zipfile=F

将 zip 容器写入文件名 F

使用 Stream 选项强制创建流式 zip 文件。

-member-name=M

此选项用于命名 zip 容器中的“文件”。

默认值为 '-'。

-stream

写入 stdout 时忽略。

如果指定了 zipfile 选项,则包含此选项将触发创建流式 zip 文件。

默认值:写入 stdout 时始终启用,否则禁用。

-method=M

使用方法 M 压缩。

有效方法名称为

* store    Store without compression
* deflate  Use Deflate compression [Deflault]
* bzip2    Use Bzip2 compression
* lzma     Use LZMA compression
* xz       Use xz compression
* zstd     Use Zstandard compression

请注意,Lzma 压缩需要安装 IO::Compress::Lzma

请注意,Zstd 压缩需要安装 IO::Compress::Zstd

默认值为 deflate

-0, -1, -2, -3, -4, -5, -6, -7, -8, -9

设置 deflate 的压缩级别。对于所有其他压缩方法,此选项将被忽略。

-0 表示不压缩,-9 表示最大压缩。

默认值为 6

-version

显示版本号

-help

显示帮助

示例

通过从标准输入读取 daa 创建一个 zip 文件

$ echo Lorem ipsum dolor sit | perl ./bin/streamzip >abcd.zip

使用标准 unzip 实用程序检查 abcd,zip 的内容

Archive:  abcd.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       22  2021-01-08 19:45   -
---------                     -------
       22                     1 file

请注意 Name 如何设置为 -。这是几个 zip 实用程序的默认值,其中成员名称未给出。

如果要显式命名文件,请使用 -member-name 选项,如下所示

$ echo Lorem ipsum dolor sit | perl ./bin/streamzip -member-name latin >abcd.zip

$ unzip -l abcd.zip
Archive:  abcd.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       22  2021-01-08 19:47   latin
---------                     -------
       22                     1 file

何时写入流式 zip 文件

流式 zip 文件在您无法在文件中向后/向前查找的情况下很有用。

一个很好的例子是,当您从 Web 服务器直接将动态内容提供到套接字中时,而无需在文件系统中创建临时 zip 文件。

类似地,如果您的工作流程使用 Linux 管道命令。

支持

一般反馈/问题/错误报告应发送至 https://github.com/pmqs/IO-Compress/issues(首选)或 https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Compress

作者

Paul Marquess [email protected]

版权

版权所有 (c) 2019-2022 Paul Marquess。保留所有权利。

本程序是自由软件;您可以在 Perl 本身相同的条款下重新发布和/或修改它。