介紹如何在 Linux 中安裝與使用 Brotli 這個開放原始碼的無損壓縮工具。
Brotli 是一個開放原始碼的無損壓縮工具(詳細介紹請參考維基百科),其壓縮率(compression ratio)在目前通用型壓縮方法中算是比較好的,速度與 deflate 方法相近但是有更好的壓縮率。關於 Brotli 壓縮演算法的標竿測試(benchmark),可以參考以下網站:
以下介紹在 Linux 環境下,Brotli 壓縮工具的安裝與使用方式;若在 Windows 系統中要使用 Brotli 壓縮或解壓縮檔案,可以使用 PeaZip 這個開放原始碼的壓縮工具。
若在 Ubuntu Linux 中,可以使用 apt
安裝 brotli
套件:
# 安裝 brotli 套件(Ubuntu)
sudo apt install brotli
若在 CentOS Linux 中,則可使用 yum
安裝 brotli
套件:
# 安裝 brotli 套件(CentOS)
sudo yum install brotli
亦可下載 Brotli 的原始碼,自行以 CMake 編譯並安裝:
# 下載 brotli 原始碼 git clone https://github.com/google/brotli.git # 以 CMake 編譯並安裝 brotli mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release ../brotli/ make -j8 sudo make install
brotli
壓縮工具的參數使用方式跟標準的 gzip
非常類似,不過 brotli
在壓縮檔案時,預設會保留原始檔案。
# 以 Brotli 壓縮檔案
brotli MyFile.txt
這裡的 MyFile.txt
檔案經過 brotli
壓縮之後,就會產生一個檔名為 MyFile.txt.br
的壓縮檔案。
若希望在壓縮之後自動將原始檔案刪除,可以加上 --rm
參數:
# 以 brotli 壓縮檔案(刪除原始檔案) brotli --rm MyFile.txt
brotli
所產生的壓縮檔案名稱預設的後綴是 .br
,若要更改可以使用 --suffix
參數指定新的後綴,例如:
# 設定壓縮檔名後綴為 .b brotli --suffix=.b MyFile.txt
若只壓縮單一檔案,可以使用 --output
參數指定輸出壓縮檔案的名稱:
# 設定壓縮檔名為 MyFile.br brotli --output=MyFile.br MyFile.txt
若要指定 brotli
的壓縮層級(compression level),可以使用 --quality
參數來指定,可用的壓縮層級是 0
到 11
,數字越大代表壓縮率越高,但是壓縮速度越慢。
# 設定壓縮層級為 5 brotli --quality=5 MyFile.txt
若是指定 0
到 9
的,也可以直接以數字參數的方式指定:
# 設定壓縮層級為 5 brotli -5 MyFile.txt
若要以最高壓縮層級來壓縮,可以直接使用 --best
參數:
# 設定壓縮層級為最高(11) brotli --best MyFile.txt
若要解壓縮 Brotli 格式的壓縮檔,可以使用 --decompress
參數:
# 解壓縮 Brotli 壓縮檔 brotli --decompress MyFile.txt.br
若要將壓縮或解壓縮結果輸出至標準輸出(standard output),可以加上 --stdout
參數:
# 壓縮後輸出至標準輸出 brotli --stdout MyFile.txt > MyFile.br
解壓縮後的資料也可以輸出至標準輸出:
# 解壓縮後輸出至標準輸出 brotli --decompress --stdout MyFile.txt.br
tar
壓縮目錄若要以 Brotli 壓縮一整個目錄,可以先用 tar
先把整個目錄打包後,交給 brotli
壓縮:
# Brotli 搭配 tar 壓縮目錄 tar cf - MyFolder | brotli -o MyFolder.tar.br -
解壓縮時則是先以 brotli
解壓縮後,再交給 tar
解開目錄:
# Brotli 搭配 tar 解壓縮目錄 brotli -dc MyFolder.tar.br | tar xf -