檔案文件的壓縮格式有非常多種,在使用文字介面來操作電腦時,不同的壓縮格式對應著不同的工具,每個工具的指令使用方式皆不太一樣。XCompress是一款使用Rust程式語言開發,專門使用在Linux作業系統上且開源的壓縮和解壓縮工具,整合了ZIP、Z、GZIP、BZIP2、LZ、XZ、LZMA、7ZIP、TAR、RAR和ZSTD,能夠使用相同的指令來處理這些壓縮格式的壓縮和解壓縮。



GitHub:

https://github.com/magiclen/xcompress

安裝XCompress

如果系統環境中有安裝「Cargo」的話,可以直接使用以下指令來下載「XCompress」的原始碼專案,並進行編譯安裝。

cargo install xcompress

如果是使用Linux作業系統的話,可以直接到以下頁面取得「XCompress」的執行檔,手動放置到「/usr/local/bin」目錄中即可。網址如下:

https://github.com/magiclen/xcompress/releases

XCompress程式本身並不帶有壓縮/解壓縮的功能,它的作用是將使用者輸入的指令,根據不同的壓縮格式,轉成其對應的工具所使用的指令。例如若要進行RAR壓縮,環境中必須要擁有「rar」工具的執行檔;若要進行RAR解壓縮,環境中必須要擁有「rar」或「unrar」工具的執行檔。由於筆者偏好且也最常使用RAR,因此將RAR設計為XCompress的預設壓縮格式。

使用XCompress

XCompress的功能分為兩大項目──壓縮和解壓縮。壓縮對應的子命令為「a」,解壓縮對應的子命令為「x」。以下分別介紹這兩大項目的功能。

壓縮

「xcompress a」指令用來處理檔案的壓縮,壓縮格式會根據輸出的檔案之副檔名來自動選擇。如果沒有指定輸出檔案的路徑,預設會使用RAR來進行壓縮,並將檔案命名為原本的檔名後再接上「.rar」。

例如以下指令,可以將「foo.wav」用RAR壓縮成「foo.wav.rar」,並放置在目前的工作目錄下。

xcompress a foo.wav

如果要將多個檔案壓縮成單一個壓縮檔,直接串接多個要壓縮的檔案路徑即可。例如以下指令,可以將「foo.wav」和「/root/bar.txt」用RAR壓縮成「foo.wav.rar」,並放置在目前的工作目錄下。

xcompress a foo.wav /root/bar.txt

如果要指定壓縮檔的輸出路徑,要加上「-o」選項。在指定輸出路徑的同時,XCompress會藉由輸出的副檔名來決定要使用哪種壓縮格式。例如以下指令,可以將「foo.wav」用7ZIP壓縮成「out.7z」,並放置在「/tmp」目錄下。

xcompress a -o /tmp/out.7z foo.wav

XCompress對於檔案壓縮的程度並沒有提供太多的控制選項,因為在實務上,我們幾乎只會去用到預設值和最大壓縮。如果要使用XCompress進行檔案的最大壓縮,可以加上「-b」選項。例如以下指令,可以將「foo/bar」檔案或目錄用RAR最大壓縮成「bar.rar」,並放置在目前的工作目錄下。

xcompress a -b foo/bar

如果輸出的壓縮格式是使用ZIP、7ZIP或是RAR的話,還可以加上「-p」選項來設定壓縮檔的開啟和解壓縮密碼。例如以下指令,可以將「foo.wav」用RAR壓縮成帶有「password」密碼的「foo.wav.rar」,並放置在目前的工作目錄下。

xcompress a -p password foo.wav

如果輸出的壓縮格式是使用ZIP、7ZIP或是RAR的話,也可以加上「-d」選項來設定壓縮檔的單一最大大小,如果單一的壓縮檔超出這個大小,就會進行分割。例如以下指令,可以將「foo.wav」用RAR壓縮成分割檔單檔最大為「1.4MB」的壓縮檔群,並放置在目前的工作目錄下。

xcompress a -d 1.4MB foo.wav

解壓縮

「xcompress x」指令用來處理檔案的解壓縮,壓縮格式會根據輸入的檔案之副檔名來自動選擇。

例如以下指令,可以用RAR解壓縮「foo.rar」,並放置在目前的工作目錄下。

xcompress x foo.rar

如果要將解壓縮後的檔案放置在指定的目錄下,可以直接在壓縮擋路徑的參數後加上目錄參數。例如以下指令,可以用RAR解壓縮「foo.rar」,並放置在「/tmp」目錄下。

xcompress x foo.rar /tmp

如果要解壓縮的壓縮檔是ZIP、7ZIP或是RAR的話,如果它有被設定壓縮密碼,可以加上「-p」選項來指定壓縮密碼來解壓縮。例如以下指令,可以用RAR和「password」這個密碼來解壓縮「foo.rar」,並放置在目前的工作目錄下。

xcompress x -p password foo.rar