概要
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的壓縮功能。
沒有留言:
張貼留言