許多日常的文件操作都可以使用單個文件、目錄和通配符來完成,但對於那些對備份、將文件集傳輸給其他用戶、或僅為了節省空間感興趣的用戶來說,了解如何使用存檔和壓縮是非常重要的。UNIX 操作系統中有許多用於存檔和壓縮數據的實用程序。
要將多個文件聚集成單個文件(存檔),最常用的方法是使用 tar 命令。tar 是磁盤存檔程序 (Tape Archiver) 的縮寫,這是因為它開始時使用備份磁帶進行存檔,但現在通常用來執行磁盤到磁盤的操作。嘗試對 TUTORIAL 目錄中的內容進行存檔:
$ cd ~
$ tar cvf /tmp/tutorial.tar TUTORIAL
$ ls /tmp/
現在,您應該可以在 /tmp/ 中看到一個名為 tutorial.tar 的文件。該文件包含了目錄 TUTORIAL 以及這個目錄中所包含的文件。這個示例中使用了命令行選項 cvf:
c 表示創建 (create),它用來告訴 tar 創建一個新的存檔。
v 表示詳細 (verbose),它用來告訴 tar 顯示加入到存檔的每個文件的清單。
f 表示文件 (file),它用來告訴 tar 將存檔寫入到文件而不是設備。
然後,進入 /tmp 並提取該存檔的內容:
$ cd /tmp/
$ ls
$ tar cvf tutorial
$ ls
請注意,第 1 個 ls 命令顯示了 tutorial.tar,但它並沒有顯示 TUTORIAL 目錄。第 2 個 ls 命令(在 tar 命令之後),它顯示出在 /tmp/ 中有一個 TUTORIAL 目錄。刪除 /tmp/TUTORIAL 目錄,以便對系統進行清理:
$ rm -R /tmp/TUTORIAL
在有了 tar 文件之後,您可能希望對其進行壓縮。在大多數 UNIX 分發版中,有大量的壓縮選項可供使用,但本教程重點關注於使用 gzip 來創建所謂的 tarball。tarball 是一個經過壓縮的 tar 文件。下面讓我們來創建一個壓縮版本的 tutorial.tar,以使其占用更少的空間:
$ gzip tutorial.tar
$ ls
現在,已經對 tutorial.tar 存檔進行了壓縮,並將其重命名為 tutorial.tar.gz。這是一個 tarball。要解壓該文件,可以輸入:
$ gzip -d tutorial.tar.gz
所得的結果是沒有壓縮的原始 tar 文件 tutorial.tar。