文件壓縮和歸檔有時候,我們需要把一組文件貯存成一個文件以便備份或傳輸到另一個目錄甚至另一個計算機上。有時候,我們還需要把文件壓縮成一個文件,因而
它們僅
使用少量磁盤空間并能更快地通過互聯網下載。
理解
歸檔文件(archive file)和
壓縮文件(compressed file)間的區別對用戶來說十分重要。歸檔
文件是一個文件和目錄的集合,而這個集合被貯存在一個文件中。歸檔文件沒有經過壓縮 —
它所使用的磁盤空間是其中所有文件和目錄的總和。壓縮文件也是一個文件和目錄的集合,且這個集合也被貯存在一個文件中,
但是,它的貯存方式
使其所占用的磁盤空間比其中所有文件和目錄的總和要少。如果你在計算機上的磁盤空間不足,你可以壓縮不常使用的、或不再使用但想保留的文件。你甚至可以創
建歸檔文件,然后再將其壓縮來節省磁盤空間。
|
注記 |
|
|
|
歸檔文件不是壓縮文件,但是壓縮文件可以是歸檔文件。
|
14.3.1. 使用文件打包器Red Hat Linux 包括了一個圖形化的壓縮工具“
文件打包器”。它可以壓
縮、解壓、并歸檔文件和目錄。文件打包器支持通用的 UNIX 和 Linux
文件壓縮和歸檔格式,而且它的界面簡單,文檔豐富。它還被集成到桌面環境和圖形化文件管理器中,使處理歸檔文件的工作更加簡便易行。
要啟動 文件打包器,點擊
「主菜單」 =>
「附件」 =>
「文
件打包器」。你還可以從
shell 提示下鍵入 file-roller
來啟動
文件打包器。[url=file:///E:/Article/s1-managing-
compressing-archiving.html#COMPRESSING-FILEROLLER-FIG]圖
14-1[/url]顯示了運行中的
文件打包器。
|
竅門 |
|
如果你使用的是文件管理器(如 Nautilus),你可以雙擊你想解除歸檔或解壓的文件來啟動文
件打包器。文件打包器的瀏覽窗口就會出現,其中的文件夾里顯示了你要解壓或解除歸檔的文件,以便你來抽取或瀏覽。
|
圖 14-1. 運行中的文件打包器
14.3.1.1. 使用文件打包器來解壓或解除歸檔要取消歸檔或者(并且)解壓文件,點擊工具欄上的
「打開」按鈕。
一個文件菜單就會彈出,允許你選擇你要操作的歸檔。譬如,如果你的主目錄中有一個 foo.tar.gz 文件,突出顯示該文件,然后點擊
「確
定」。該文件就會作為文件夾出現在
文件打包器的主瀏覽窗口中,你可以雙擊該文件夾圖標來翻閱其中的
內容。文件打包器保留所有原有的目錄和子目錄結構,這便于你在歸檔中查找某一特定文件。你可以點擊
「抽取」按鈕,選擇
你要保存這些解除歸檔后的文件的目錄,然后點擊
「確定」按鈕來抽取其中的某個文件或整個歸檔。
14.3.1.2. 使用
文件打包器來創建歸檔文件如果你需要騰出一些硬盤空間,或者把多個文件或某一目錄下的所有文
件發送給另一名用戶,文件打包器允許你創建文件和目錄的歸檔。要創建新歸檔,點擊工具欄上的
「新建」按鈕。一個文件瀏
覽器會彈出,允許你指定歸檔名稱和壓縮技術。譬如,你可以從拉下菜單中選擇
「用 gzip 壓縮的 Tar (tar.gz)
格式,然后鍵入你想創建的歸檔文件的名稱。點擊
「確定」,你就可以在新歸檔中添加文件和目錄了。要在你的新歸檔中添
加文件,點擊
「添加」,這會彈出一個瀏覽窗口([url=file:///E:/Article/s1-
managing-compressing-archiving.html#FILEROLL-ADD-FIG]圖
14-2[/url]),你可以從中查找要放入歸檔中的文件或目錄。結束后點擊
「確定」和
「關閉」按
鈕來關閉歸檔。
圖 14-2. 使用文件打包器來創建歸檔
|
竅門 |
|
文件打包器能夠執行的任務不止這里提到的這些。請閱讀文件打包器 的說明書(點擊「幫助」 => 「說
明書」)來獲取詳細信息。
|
14.3.2. 在 shell 提示下壓縮文件壓縮文件使用較少磁盤空間,并且比未壓縮的大文件下載速度要快。在 Red Hat Linux
中,你可以使用的文件壓縮工具有:gzip、bzip2、和 zip。
推薦你使用 bzip2 壓縮工具,因為它提供了最大限度的壓縮,并且可在多數類似 UNIX 的操作系統上找到。gzip 壓縮工具也可以在類似
UNIX 的操作系統上找到。如果你需要在 Linux 和其它操作系統如 MS Windows 間傳輸文件,你應該使用 zip,因為該命令與
Windows 上的壓縮工具最兼容。
壓縮工具 文件擴展名 解壓工具
gzip .gz gunzip
bzip2 .bz2 bunzip2
zip .zip unzip
表 14-1.
壓縮工具
按照約定俗成,用 gzip 來壓縮的文件的擴展名是 .gz;用 bzip2 來壓縮的文件的擴展名是 .bz2;用 zip 壓縮的文件的擴展名是
.zip。
用 gzip 壓縮的文件可以使用 gunzip 來解壓;用 bzip2 壓縮的文件可以使用 bunzip2 來解壓;用 zip
壓縮的文件可以使用 unzip 來解壓。
14.3.2.1. bzip2 和 bunzip2要使用 bzip2 來壓縮文件,在 shell 提示下鍵入以下命令:
文
件即會被壓縮并被保存為 filename.bz2。
要擴展壓縮的文件,鍵入以下命令:
filename.bz2 文件會被刪除,而繼之以 filename。
你可以使用 bzip2 命令同時處理多個文件和目錄,方法是將它們逐一列出,并用空格間隔:
bzip2 filename.bz2 file1
file2 file3 /usr/work/school |
上面的命令
把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然后放入
filename.bz2 文件中。
|
竅門 |
|
要獲得有關這兩個命令的詳細信息,在 shell 提示下鍵入 man bzip2 和 man bunzip2 來閱讀
bzip2 和 bunzip2 命令的說明書頁。
|
14.3.2.2. gzip 和 gunzip要使用 gzip 來壓縮文件,在 shell 提示下鍵入以下命令:
文
件即會被壓縮,并被保存為 filename.gz。
要擴展壓縮的文件,鍵入以下命令:
filename.gz
會被刪除,而繼之以 filename。
你可以使用 gzip 命令同時處理多個文件和目錄,方法是將它們逐一列出,并用空格間隔:
gzip -r filename.gz file1
file2 file3 /usr/work/school |
上面的命令
把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然后放入
filename.gz 文件中。
|
竅門 |
|
要獲得有關這兩個命令的詳細信息,在 shell 提示下鍵入 man gzip 和 man gunzip 來閱讀 gzip 和 gunzip
命令的說明書頁。
|
14.3.2.3. zip 和 unzip要使用 zip 來壓縮文件,在 shell 提示下鍵入下面的命令:
zip -r filename.zip filesdir
|
在這個例子里,filename.zip
代表你創建的文件,filesdir 代表你想放置新 zip 文件的目錄。-r 選項指定你想
遞歸地(recursively)包括所有
包括在 filesdir 目錄中的文件。
要抽取 zip 文件的內容,鍵入以下命令:
你
可以使用 zip 命令同時處理多個文件和目錄,方法是將它們逐一列出,并用空格間隔:
zip -r filename.zip file1
file2 file3 /usr/work/school |
上面的命令
把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然后放入
filename.zip 文件中。
|
竅門 |
|
要獲得有關這兩個命令的詳細信息,在 shell 提示下鍵入 man zip 和 man unzip 來閱讀 zip 和
unzip 命令的說明書頁。
|
14.3.3. 在 shell 提示下給文件歸檔tar 文件是幾個文件和(或)目錄在一個文件中的集合。這是創建備份和歸檔的佳徑。
tar 使用的選項有:
- -c — 創建一個新歸檔。
- -f — 當與 -c 選項一起使用時,創建的 tar 文件使用該選項指定的文件名;當與 -x
選項一起使用時,則解除該選項指定的歸檔。
- -t — 顯示包括在 tar 文件中的文件列表。
- -v — 顯示文件的歸檔進度。
- -x — 從歸檔中抽取文件。
- -z — 使用 gzip 來壓縮 tar 文件。
- -j — 使用 bzip2 來壓縮 tar 文件。
要創建一個 tar 文件,鍵入:
tar -cvf filename.tar
directory/file |
在以上的例子中,filename.tar
代表你創建的文件,directory/file 代表你想放入歸檔文件內的文件和目錄。
你可以使用 tar 命令同時處理多個文件和目錄,方法是將它們逐一列出,并用空格間隔:
tar -cvf filename.tar
/home/mine/work /home/mine/school |
上
面的命令把 /home/mine 目錄下的 work 和 school 子目錄內的所有文件都放入當前目錄中一個叫做 filename.tar
的新文件里。
要列出 tar 文件的內容,鍵入:
要抽取 tar 文件的內容,鍵入:
這個命令不會刪除 tar
文件,但是它會把被解除歸檔的內容復制到當前的工作目錄下,并保留歸檔文件所使用的任何目錄結構。譬如,如果這個 tar 文件中包含一個叫做
bar.txt 的文件,而這個文件包含在 foo/ 目錄中,那么,抽取歸檔文件將會導致在你當前的工作目錄中創建 foo/ 目錄,該目錄中包含
bar.txt 文件。
請記住,tar 默認不壓縮文件。要創建一個使用 tar 和 bzip 來歸檔壓縮的文件,使用 -j 選項:
tar -cjvf filename.tbz file
|
按照約定俗成,用 bzip2 壓縮的 tar 文件具有 .tbz
擴展名。不過,有時用戶使用 tar.bz2 擴展名來歸檔他們的文件。
以上命令創建了一個歸檔文件,然后將其壓縮為 filename.tbz 文件。如果你使用 bunzip2 命令為 filename.tbz
文件解壓,filename.tbz 文件會被刪除,繼之以 filename.tar 文件。
你還可以用一個命令來擴展并解除歸檔 bzip tar 文件:
要創建一個用 tar 和 gzip 歸檔并壓縮的文件,使用 -z 選項:
tar -czvf filename.tgz file
|
按照約定俗成,使用 gzip 來壓縮的 tar 文件具有 .tgz
擴展名。
這個命令創建歸檔文件 filename.tar,然后把它壓縮為 filename.tgz 文件(文件 filename.tar
不被保留)。如果你使用 gunzip 命令來給 filename.tgz 文件解壓,filename.tgz 文件會被刪除,并被替換為
filename.tar。
你可以用單個命令來擴展 gzip tar 文件:
tar -xzvf filename.tgz