在我們面對的日常工作中,各種平台上的歸檔檔案有可能是 Windows 、 Mac 或 Linux 等型別。幾款應用站羣軟件可供所有平台建立歸檔檔案以及對歸檔檔案進行解壓縮。説到在 Linux 平台上工作,我們需要非常頻繁地處理歸檔檔案。
Linux 命令列歸檔工具
我們在本文中將探討標準 Linux 發行版上可供使用的歸檔工具、功能特性以及例項等。文章分上下兩部分,每個部分各自介紹了五款命令列歸檔工具(也就是説,總共介紹了十款最佳的 Linux 命令列工具)。
何謂歸檔檔案
歸檔檔案是經過壓縮的檔案,它由一個或多個計算機檔案以及後設資料組成。
歸檔的功能特性

資料壓縮
加密
檔案並置
自動解壓
自動安裝
源卷和介質資訊
File spanning
校驗和
目錄結構資訊
其他後設資料(關於資料的資料)
錯誤發現

應用領域

儲存計算機檔案系統以及後設資料。
適用於本地傳送檔案。
適用於通過網際互聯網傳送檔案。
站羣軟件包裝應用程式。

標準 Linux 發行版上實用的歸檔應用站羣軟件包括如下:
1. tar 命令
tar 是標準的 UNIX/Linux 歸檔應用站羣軟件工具。在早期階段,它曾經是一款磁帶歸檔站羣軟件,後來慢慢發展成了通用歸檔站羣軟件包,能夠處理各種型別的歸檔檔案。 tar 可接受許多帶選項的歸檔過濾器。
tar 選項

-A:將 tar 檔案新增到現有歸檔的末尾。
-c:建立一個新的歸檔檔案。
-d:使用指定的檔案系統比較歸檔。
-j:用 bzip 壓縮歸檔。
-r:將檔案新增到現有歸檔的末尾。
-t:列出現有歸檔的內容。
-u:更新歸檔。
-x:從現有歸檔解壓檔案。
-z:用 gzip 壓縮歸檔。
–delete:從現有歸檔刪除檔案。

tar 例項
建立一個 tar 歸檔檔案。

# tar -zcvf name_of_tar.tar.gz /path/to/folder

對 tar 歸檔檔案進行解壓縮。

# tar -zxvf Name_of_tar_file.tar.gz

想了解更詳細的例子,請參閲《Linux 下的 18 個 Tar 命令例項》一文:http://www.tecmint.com/18-tar-command-examples-in-linux/。
2. shar 命令
shar 代表外殼歸檔,這是一個外殼指令碼,執行該指令碼就可以建立文件。 shar 是自解壓歸檔檔案,這是一款老式實用工具,需要 Unix Bourne 外殼來解壓檔案。 shar 的優勢在於採用明文格式,不過它可能很危險,因為它輸出的是可執行檔案。
shar 選項

-o:將輸出儲存到選項中指定的歸檔文件。
-l:限制選項中指定的輸出檔案大小,但不分割輸入檔案。
-L:限制在選項中指定的輸出檔案大小,但分割輸入檔案。
-n:歸檔名稱新增到 shar 檔案的頭部中。
-a:允許自動生成檔案頭部。

注意:如果使用了 “-l” 或 “-L” 選項,就要用 “-o” 選項;如果使用了 “-a” 選項,就要用 “-n” 選項。
shar 例項
建立一個 shar 歸檔檔案。

# shar file_name.extension > filename.shar

解壓 shar 歸檔檔案。

# unshar file_name.shar

3. ar 命令
ar 是建立和處理歸檔的實用工具,主要用於二進位制物件檔案庫。 ar 代表歸檔工具,可用於歸檔任何用途的各種歸檔,但是基本上已被 “tar” 取而代之;現如今,它只用於建立和更新靜態庫檔案。
ar 選項

-d:從歸檔中刪除模組。
-m:移動歸檔中的成員。
-p:顯示歸檔的指定成員的內容。
-q:快速新增。
-r:將檔案成員插入到歸檔。
-s:為歸檔新增索引。
-a:將新檔案新增到歸檔的現有成員。

ar 例項
使用 “ar” 工具建立一個歸檔,靜態庫為 “libmath.a”,兩個物件檔案為 “substraction” 和 “division”,具體如下。

# ar cr libmath.a substraction.o division.o

解壓 “ar” 歸檔檔案。

# ar x libmath.a

4. cpio
cpio 代表 Copy in and out(拷貝輸入和輸出)。 cpio 是一款面向 Linux 的通用檔案歸檔工具。它被紅帽站羣軟件包管理器(RPM)積極使用,用於 Linux 核心的 initramfs(初始 RAM 檔案系統)中,還是蘋果公司的安裝工具(pax)中的一個重要歸檔工具。
cpio 選項

-0:讀取由空字元終止而不是由換行符終止的檔名列表。
-a:復位訪問時間。
-A:新增到現有歸檔。
-b:交換。
-d:建立目錄。

cpio 例項
建立一個 “cpio” 歸檔檔案。

# cd tecmint
# ls
file1.o file2.o file3.o
# ls | cpio -ov > /path/to/output_folder/obj.cpio

解壓 cpio 歸檔檔案。

# cpio -idv < /path/to folder/obj.cpio 5. gzip gzip 是一種標準的、廣泛應用的檔案壓縮和解壓縮實用工具。 gzip 允許檔案並置。用 gzip 壓縮檔案,可以得到格式為 “*.tar.gz” 或 “*.tgz” 的 tarball 打包檔案。 gzip 選項 –stdout:將輸出寫到標準輸出裝置上。 –to-stdout:將輸出寫到標準輸出裝置上。 –decompress:解壓縮檔案。 –uncompress:解壓縮檔案。 -d:解壓縮檔案。 -f:強行壓縮/解壓縮。 gzip 例項 建立一個 “gzip” 歸檔檔案。 # tar -cvzf name_of_archive.tar.gz /path/to/folder 解壓縮 “gzip” 歸檔檔案。 # gunzip file_name.tar.gz 執行上面這個命令後必須緊跟著執行下面這個命令。 # tar -xvf file_name.tar 注意:由於 gzip 的架構和功能,很難恢復受損壞的用 gzip 處理的 tar 歸檔檔案。所以建議在不同的地方對用 gzip 處理的重要檔案做幾個備份。 暫且介紹這麼多。我們會在下一篇文章中介紹另外面向 Linux 的壓縮和解壓縮應用站羣軟件。敬請關注。 英文:http://www.tecmint.com/command-line-archive-tools-for-linux/