Zstandard (也被稱為zstd )是一款免費的開源,快速實時數據壓縮程序,具有更好的壓縮比,由Facebook開發。 它是用C語言編寫的無損壓縮算法 (在Java中有一個重新實現) - 因此它是一個本地Linux程序。
另請參閱 : Linux中的10 7zip(Data Comperssion)命令示例
當需要時,它可以將壓縮速度交換為更高的壓縮比率(壓縮速度與壓縮比率的權衡可以通過小增量來配置),反之亦然。 它具有小數據壓縮的特殊模式,稱為字典壓縮,可以從任何提供的樣本集中構建字典。 它帶有一個命令行實用程序,用於創建和解碼.zst , .gz , .xz和.lz4文件。
重要的是, Zstandard擁有豐富的API集合,支持幾乎所有流行的編程語言,包括Python,Java,JavaScript,Nodejs,Perl,Ruby,C#,Go,Rust,PHP,Switft等等。
它被積極用於壓縮Facebook中多種格式和用例的大量數據; 服務,如Amazon Redshift數據倉庫; 數據庫,如Hadoop和Redis; Tor網絡和許多其他應用程序,包括游戲。
通過使用lzbench (一種開源內存基准測試工具)在運行Linux Debian的服務器上執行多個快速壓縮算法測試,可以獲得以下結果。
如何在Linux中安裝Zstandard壓縮工具
要在Linux發行版上安裝Zstandard ,您需要從源代碼進行編譯,但在此之前,您需要使用發行包管理器在系統上安裝必要的開發工具,如圖所示。
$ sudo apt update && sudo apt install build-essential #Ubuntu/Debian # yum group install "Development Tools" #CentOS/REHL # dnf groupinstall "C Development Tools and Libraries" #Fedora 22+
一旦安裝了所有需要的開發工具,現在您可以下載源軟件包,進入本地repo目錄,構建二進制文件並按照所示進行安裝。
$ cd ~/Downloads $ git clone https://github.com/facebook/zstd.git $ cd zstd $ make $ sudo make install
一旦安裝了Zstandard ,現在我們可以進一步學習以下部分中有關Zstd命令示例的一些基本用法。
在Linux中學習10個Zstd命令使用示例
Zstd的命令行語法通常與gzip和xz工具類似,但有一些差異。
1.要創建.zst
壓縮文件,只需提供一個壓縮文件名即可,或者使用-z
標志也意味着壓縮,這是默認操作。
$ zstd etcher-1.3.1-x86_64.AppImage OR $ zstd -z etcher-1.3.1-x86_64.AppImage
2.要解壓縮.zst
壓縮文件,請使用-d
標志或unzstd實用程序,如圖所示。
$ zstd -d etcher-1.3.1-x86_64.AppImage OR $ unzstd etcher-1.3.1-x86_64.AppImage
3.要在操作后刪除源文件,默認情況下,源文件在成功壓縮或解壓縮后不會被刪除,要刪除它,請使用--rm
選項。
$ ls etcher-1.3.1-x86_64.AppImage $ zstd --rm etcher-1.3.1-x86_64.AppImage $ ls etcher-1.3.1-x86_64.AppImage
4.要設置壓縮級別,zstd具有許多操作修飾符,例如,您可以指定壓縮級別為-6
(數字1-19,默認值為3),如圖所示。
$ zstd -6 --rm etcher-1.3.1-x86_64.AppImage
5.要設置壓縮速度,zstd的壓縮速度比率為1-10 ,默認壓縮速度為1 。 您可以使用--fast
選項--fast
壓縮速度的壓縮比,數字越高壓縮速度越快。
$ zstd --fast=10 etcher-1.3.1-x86_64.AppImage
6.要顯示有關壓縮文件的信息,請使用-l
標志,例如用於顯示有關壓縮文件的信息。
$ zstd -l etcher-1.3.1-x86_64.AppImage.zst
7.要測試壓縮文件的完整性,請使用-t
標志,如圖所示。
$ zstd -t etcher-1.3.1-x86_64.AppImage.zst
8.要啟用詳細模式,請使用-v
選項。
$ zstd -v -5 etcher-1.3.1-x86_64.AppImage
9.使用其他文件壓縮或解壓縮格式,例如gzip,xz,lzma和lz4,使用--format=FORMAT
,如圖所示。
$ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage $ zstd -v --format=xz etcher-1.3.1-x86_64.AppImage
10.要將zstd進程優先級設置為實時,可以使用選項-priority = rt ,如圖所示。
$zstd --priority=rt etcher-1.3.1-x86_64.AppImage
-r
標志指示zstd在字典上遞歸操作。 您可以找到許多有用的高級選項,以及如何通過查閱zstd手冊頁來閱讀或創建詞典。
$ man zstd
Zstandard Github存儲庫 : https : //github.com/facebook/zstd
Zstandard是一種快速的實時無損數據壓縮算法和壓縮工具,可提供高壓縮比。 嘗試一下,分享您的想法或通過下面的反饋表格提問。