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



GitHub:

安裝XCompress

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

cargo install xcompress

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

XCompress程式本身並不帶有壓縮/解壓縮的功能,它的作用是將使用者輸入的指令,根據不同的壓縮格式,轉成其對應的工具所使用的指令。例如若要進行RAR壓縮,環境中必須要擁有rar工具的執行檔;若要進行RAR解壓縮,環境中必須要擁有rarunrar工具的執行檔。由於筆者偏好且也最常使用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

不過XCompress另外還有提供-f選項,可以進行檔案的最小壓縮。如果輸出的壓縮格式是使用RAR的話,還可以加上-r選項來加入復原記錄,讓壓縮檔在一定程度的毀損下還有自我復原的能力。

xcompress a -f foo/bar -r 5

如果輸出的壓縮格式是使用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