檔案文件的壓縮格式有非常多種,在使用文字介面來操作電腦時,不同的壓縮格式對應著不同的工具,每個工具的指令使用方式皆不太一樣。XCompress是一款使用Rust程式語言開發,專門使用在Linux作業系統上且開源的壓縮和解壓縮工具,整合了ZIP、Z、GZIP、BZIP2、LZ、XZ、LZMA、7ZIP、TAR、RAR和ZSTD,能夠使用相同的指令來處理這些壓縮格式的壓縮和解壓縮。
GitHub:
安裝XCompress
如果系統環境中有安裝「Cargo」的話,可以直接使用以下指令來下載「XCompress」的原始碼專案,並進行編譯安裝。
如果是使用Linux作業系統的話,可以直接到以下頁面取得「XCompress」的執行檔,手動放置到/usr/local/bin
目錄中即可。網址如下:
XCompress程式本身並不帶有壓縮/解壓縮的功能,它的作用是將使用者輸入的指令,根據不同的壓縮格式,轉成其對應的工具所使用的指令。例如若要進行RAR壓縮,環境中必須要擁有rar
工具的執行檔;若要進行RAR解壓縮,環境中必須要擁有rar
或unrar
工具的執行檔。由於筆者偏好且也最常使用RAR,因此將RAR設計為XCompress的預設壓縮格式。
使用XCompress
XCompress的功能分為兩大項目──壓縮和解壓縮。壓縮對應的子命令為a
,解壓縮對應的子命令為x
。以下分別介紹這兩大項目的功能。
壓縮
xcompress a
指令用來處理檔案的壓縮,壓縮格式會根據輸出的檔案之副檔名來自動選擇。如果沒有指定輸出檔案的路徑,預設會使用RAR來進行壓縮,並將檔案命名為原本的檔名後再接上.rar
。
例如以下指令,可以將foo.wav
用RAR壓縮成foo.wav.rar
,並放置在目前的工作目錄下。
如果要將多個檔案壓縮成單一個壓縮檔,直接串接多個要壓縮的檔案路徑即可。例如以下指令,可以將foo.wav
和/root/bar.txt
用RAR壓縮成foo.wav.rar
,並放置在目前的工作目錄下。
如果要指定壓縮檔的輸出路徑,要加上-o
選項。在指定輸出路徑的同時,XCompress會藉由輸出的副檔名來決定要使用哪種壓縮格式。例如以下指令,可以將foo.wav
用7ZIP壓縮成out.7z
,並放置在/tmp
目錄下。
XCompress對於檔案壓縮的程度並沒有提供太多的控制選項,因為在實務上,我們幾乎只會去用到預設值和最大壓縮。如果要使用XCompress進行檔案的最大壓縮,可以加上-b
選項。例如以下指令,可以將foo/bar
檔案或目錄用RAR最大壓縮成bar.rar
,並放置在目前的工作目錄下。
不過XCompress另外還有提供-f
選項,可以進行檔案的最小壓縮。如果輸出的壓縮格式是使用RAR的話,還可以加上-r
選項來加入復原記錄,讓壓縮檔在一定程度的毀損下還有自我復原的能力。
如果輸出的壓縮格式是使用ZIP、7ZIP或是RAR的話,還可以加上-p
選項來設定壓縮檔的開啟和解壓縮密碼。例如以下指令,可以將foo.wav
用RAR壓縮成帶有password
密碼的foo.wav.rar
,並放置在目前的工作目錄下。
如果輸出的壓縮格式是使用ZIP、7ZIP或是RAR的話,也可以加上-d
選項來設定壓縮檔的單一最大大小,如果單一的壓縮檔超出這個大小,就會進行分割。例如以下指令,可以將foo.wav
用RAR壓縮成分割檔單檔最大為1.4MB
的壓縮檔群,並放置在目前的工作目錄下。
解壓縮
xcompress x
指令用來處理檔案的解壓縮,壓縮格式會根據輸入的檔案之副檔名來自動選擇。
例如以下指令,可以用RAR解壓縮foo.rar
,並放置在目前的工作目錄下。
如果要將解壓縮後的檔案放置在指定的目錄下,可以直接在壓縮擋路徑的參數後加上目錄參數。例如以下指令,可以用RAR解壓縮foo.rar
,並放置在/tmp
目錄下。
如果要解壓縮的壓縮檔是ZIP、7ZIP或是RAR的話,如果它有被設定壓縮密碼,可以加上-p
選項來指定壓縮密碼來解壓縮。例如以下指令,可以用RAR和password
這個密碼來解壓縮foo.rar
,並放置在目前的工作目錄下。