streamzip - 從 stdin 建立一個 zip 檔案
producer | streamzip [opts] | consumer
producer | streamzip [opts] -zipfile=output.zip
此程式會從 stdin
讀取資料,將其壓縮成一個 zip 容器,並預設將一個串流 zip 檔案寫入 stdout
。不會建立任何暫存檔。
寫入 stdout
的 zip 容器必須以串流格式寫入。大多數讀取 Zip 檔案的程式都能處理串流 zip 檔案,但如果互通性很重要,而且您的工作流程允許您將 zip 檔案直接寫入磁碟,您可以使用 zipfile
選項建立一個非串流 zip 檔案。
建立一個符合 Zip64 的 zip 容器。如果輸入大於 4Gig,請使用此選項。
預設為停用。
將 zip 容器寫入檔案名稱 F
。
使用 Stream
選項強制建立串流 zip 檔案。
此選項用於命名 zip 容器中的「檔案」。
預設為「-」。
寫入 stdout
時忽略。
如果指定了 zipfile
選項,包括此選項將觸發建立串流 zip 檔案。
預設:寫入 stdout
時始終啟用,否則停用。
使用 M
方法壓縮。
有效的 method 名稱為
* 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
。
設定 deflate
的壓縮層級。其他所有壓縮方法都忽略此設定。
-0
表示不壓縮,-9
表示最大壓縮。
預設為 6
顯示版本號碼
顯示說明
從 stdin 讀取資料建立 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 檔案很有用。
一個很好的例子是,當您將動態內容從 Web 伺服器直接傳輸到 socket,而不需要在檔案系統中建立暫時的 zip 檔案時。
類似地,如果您的工作流程使用 Linux 管線命令。
一般的回饋/問題/錯誤報告應傳送至 https://github.com/pmqs/IO-Compress/issues(優先)或 https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Compress。
Paul Marquess pmqs@cpan.org。
版權所有 (c) 2019-2022 Paul Marquess。保留所有權利。
此程式為自由軟體;您可以在與 Perl 相同的條款下重新散佈或修改它。