linux zip命令
檔案壓縮和歸檔
有時候,我們需要把一組檔案貯存成一個檔案以便備份或傳輸到另一個目錄甚至另一個計算機上。有時候,我們還需要把檔案壓縮成一個檔案,因而它們僅使用少量磁碟空間並能更快地通過網際網路下載。
理解歸檔檔案(archive file)和壓縮檔案(compressed file)間的區別對使用者來說十分重要。歸檔檔案是一個檔案和目錄的集合,而這個集合被貯存在一個檔案中。歸檔檔案沒有經過壓縮 — 它所使用的磁碟空間是其中所有檔案和目錄的總和。壓縮檔案也是一個檔案和目錄的集合,且這個集合也被貯存在一個檔案中,但是,它的貯存方式使其所佔用的磁碟空間比其中所有檔案和目錄的總和要少。如果你在計算機上的磁碟空間不足,你可以壓縮不常使用的、或不再使用但想保留的檔案。你甚至可以建立歸檔檔案,然後再將其壓縮來節省磁碟空間。
註記 |
---|
歸檔檔案不是壓縮檔案,但是壓縮檔案可以是歸檔檔案。 |
使用檔案打包器
Red Hat Linux 包括了一個圖形化的壓縮工具“檔案打包器”。它可以壓縮、解壓、並歸檔檔案和目錄。檔案打包器支援通用的 UNIX 和 Linux 檔案壓縮和歸檔格式,而且它的介面簡單,文件豐富。它還被整合到桌面環境和圖形化檔案管理器中,使處理歸檔檔案的工作更加簡便易行。
要啟動 檔案打包器,點選「主選單」 => 「附件」 => 「檔案打包器」。你還可以從 shell 提示下鍵入 file-roller
竅門 |
---|
如果你使用的是檔案管理器(如 Nautilus),你可以雙擊你想解除歸檔或解壓的檔案來啟動檔案打包器。檔案打包器的瀏覽視窗就會出現,其中的資料夾裡顯示了你要解壓或解除歸檔的檔案,以便你來抽取或瀏覽。 |
圖 14-1. 執行中的檔案打包器
使用檔案打包器來解壓或解除歸檔
要取消歸檔或者(並且)解壓檔案,點選工具欄上的「開啟」按鈕。一個檔案選單就會彈出,允許你選擇你要操作的歸檔。譬如,如果你的主目錄中有一個 foo.tar.gz
使用檔案打包器來建立歸檔檔案
如果你需要騰出一些硬碟空間,或者把多個檔案或某一目錄下的所有檔案傳送給另一名使用者,檔案打包器允許你建立檔案和目錄的歸檔。要建立新歸檔,點選 工具欄上的「新建」按鈕。一個檔案瀏覽器會彈出,允許你指定歸檔名稱和壓縮技術。譬如,你可以從拉下選單中選擇「用 gzip 壓縮的 Tar (tar.gz) 格式,然後鍵入你想建立的歸檔檔案的名稱。點選「確定」,你就可以在新歸檔中新增檔案和目錄了。要在你的新歸檔中新增檔案,點選「新增」,這會彈出一個瀏 覽視窗(圖 14-2),你可以從中查詢要放入歸檔中的檔案或目錄。結束後點擊「確定」和「關閉」按鈕來關閉歸檔。
圖 14-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 來解壓。
bzip2 和 bunzip2
要使用 bzip2 來壓縮檔案,在 shell 提示下鍵入以下命令:
bzip2 filename |
檔案即會被壓縮並被儲存為 filename.bz2。
要擴充套件壓縮的檔案,鍵入以下命令:
bunzip2 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 命令的說明書頁。 |
gzip 和 gunzip
要使用 gzip 來壓縮檔案,在 shell 提示下鍵入以下命令:
gzip filename |
檔案即會被壓縮,並被儲存為 filename.gz。
要擴充套件壓縮的檔案,鍵入以下命令:
gunzip 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 命令的說明書頁。 |
zip 和 unzip
要使用 zip 來壓縮檔案,在 shell 提示下鍵入下面的命令:
zip -r filename.zip filesdir |
在這個例子裡,filename.zip 代表你建立的檔案,filesdir 代表你想放置新 zip 檔案的目錄。-r 選項指定你想遞迴地(recursively)包括所有包括在 filesdir 目錄中的檔案。
要抽取 zip 檔案的內容,鍵入以下命令:
unzip filename.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 命令的說明書頁。 |
在 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 -tvf filename.tar |
要抽取 tar 檔案的內容,鍵入:
tar -xvf filename.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 -xjvf filename.tbz |
要建立一個用 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