創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2021年2月27日 星期六

zstd簡易使用

概要

Zstandard(或簡稱zstd)是由Facebook的Yann Collet所開發的無損資料壓縮演算法與資料壓縮工具,採BSD與GPLv2雙授權的開放原始碼軟體。有與DEFLATE 演算法(如ZIP, gzip)相當的壓縮比,但更快的壓縮與解壓縮速度,特別是後者的表現更為出色。可透過參數調整壓縮比或壓縮速度。近年逐漸被廣泛採用,在Ubuntu MATE 20.04上已是預裝的工具,不必額外安裝即可使用,本文簡單介紹在此環境的zstd命令行使用方法。

zstd簡易使用

顯示使用說明

命令行語法相似於gzip與xz。與gzip稍有不同的則是,zstd預設會保留來源檔。看一下簡易用法:


$ zstd -h

這裡不錄顯示結果,從中可以看到zstd的版號、命令形式與一些參數用法的簡單說明。若想看詳細說明,請自行查看 man zstd 的內容。

命令形式

zstd [args] [FILE(s)] [-o file]

  • args:參數,稍後做說明。
  • FILE(s):來源檔的檔案名稱,可以一或多個;也可用萬用字元。
  • -o file:輸出檔名。此參數僅上述FILE為一個時有作用,請自行加上 .zst 延伸檔名。

除非指定 --stdout 或 -o ,輸出的新檔名會依來源檔案的名稱而定:壓縮時新檔名為來源檔名稱附加上 .zst ;解壓縮時,移除來源檔檔名後的 .zst 以做為新檔名。

參數

除了上面提過的,以下是幾個較簡單常用的參數:

操作模式

  • -z:壓縮。由於zstd的最主要用途即做壓縮,所以做壓縮時,可以省略此參數。實際上 -h 的顯示中也不提此項
  • -d:decompression,解壓縮。unzstd 即相當於 zstd -d
  • -l, --list:列示壓縮檔資訊
  • -t, --test:測試壓縮檔的完整性

如果同時指定多個操作模式,僅最後一個有作用。

壓縮程度與快速壓縮程度

  • -#:#表示數字,壓縮程度(1-19,預設:3)
  • --ultra:啟用19之後的壓縮程度,直到22,需要更多記憶體,解壓縮時也是
  • --fast[=#]:切換到非常快速壓縮程度(預設:1),相對的代價是壓縮比稍差

若同時指定壓縮程度與快速壓縮程度,僅在後者有作用。

其他

  • -r:對目錄做遞迴操作
  • -V:顯示版號並離開
  • -v:verbose mode;指定多個v可增加資訊量

使用範例

壓縮


$ zstd file.txt

此例會新產生壓縮檔,名稱為 file.txt.zst。

解壓縮


$ zstd -d file.txt.zst

此例會讀取 file.txt.zst 壓縮檔,解壓縮的目的檔名為 file.txt,若該檔已存在,會詢問是否要覆寫。

結語

以上是zstd命令行的簡易用法,進階用法像多執行緒、標竿測試……等等功能,可查閱 man zstd 。若想用圖形界面,可考慮使用PeaZip或7-zip

別忘了zstd就如同gzip是用來做單獨檔案的壓縮,而不是像WinZip般的封存程式,必要時可用tar來達成這類工作。較新版的tar已有 --zstd 參數,不必再使用 -I 來結合zstd的壓縮功能。

參考與連結

  1. Zstandard - Wikipedia
  2. Uystebuntu Manpage: zstd

沒有留言:

張貼留言