390 likes | 573 Views
第 9 章. 打包、壓縮 與解壓縮. 前言. 在 Linux 的世界中 , 大部分的程式都是以壓縮檔的形式散佈。所以我們常常會看到一些以 .tar.gz 、 .tgz 、 .gz , 或 .bz2 為副檔名的檔案。 這些檔案都是使用各種不同壓縮程式所製作出來的壓縮檔 , 我們從網路上取得這樣的檔案之後 , 都要先解壓縮才能安裝使用。. 前言. 由於這是每個 Linux 使用者經常會用到的基本功能 , 因此在這一章中介紹最常見到的打包、壓縮和解壓縮程式。以後再遇到這些檔案時 , 就知道該如何處理了。
E N D
第 9 章 打包、壓縮 與解壓縮
前言 • 在 Linux 的世界中, 大部分的程式都是以壓縮檔的形式散佈。所以我們常常會看到一些以 .tar.gz、.tgz、 .gz , 或 .bz2 為副檔名的檔案。 • 這些檔案都是使用各種不同壓縮程式所製作出來的壓縮檔, 我們從網路上取得這樣的檔案之後,都要先解壓縮才能安裝使用。
前言 • 由於這是每個 Linux 使用者經常會用到的基本功能, 因此在這一章中介紹最常見到的打包、壓縮和解壓縮程式。以後再遇到這些檔案時, 就知道該如何處理了。 • 以下先列出常見的各種副檔名及其所使用的壓縮指令:
前言 • .tar:以 tar 指令打包的檔案。 • .zip:以 zip 指令壓縮的檔案。 • gz:以 gzip 指令壓縮的檔案。 • .tar.gz、.tgz:以 tar 指令打包, 再使用 gzip 指令壓縮的檔案。 • .bz2:以 bzip2 指令壓縮的檔案。
前言 • .tar.bz2:以 tar 指令打包, 再使用 bzip2 指令壓縮的檔案。 • .Z:以 compress 指令壓縮的檔案。 • .tar.Z:以 tar 指令打包, 再使用 compress 指令壓縮的檔案。
本章提要 • 9-1 打包的 tar 指令 • 9-2 壓縮與解壓縮的 zip 和 unzip 指令 • 9-3 壓縮與解壓縮的 gzip 和 gunzip 指令 • 9-4 壓縮與解壓縮的 bzip2 和 bunzip2 指令 • 9-5 壓縮與解壓縮的 compress 和 uncompress指令
9-1 打包的 tar 指令 • tar指令位於 /bin 目錄中, 它能將使用者所指定的檔案或目錄打包成一個檔案, 不過它並不做壓縮。一般 Unix 上常用的壓縮方式是先用 tar 指令將許多檔案打包成一個檔案, 再以gzip等壓縮指令壓縮成 xxx.tar.gz (或稱為 xxx.tgz ) 的檔案。 • tar 指令的參數繁多, 您可執行 tar --help 指令得到各參數的語法及大致說明。以下列舉常用參數作說明:
打包的 tar 指令 • -c :建立一個新的 tar 檔。 • -v :顯示運作過程的資訊。 • -f :指定檔案名稱。 • -z :呼叫 gzip 壓縮指令執行壓縮、解壓縮。 • -j :呼叫 bzip2 壓縮指令執行壓縮、解壓縮。 • -t :檢視壓縮檔案內容。 • -x :解開 tar 檔。 • -Z:呼叫 compress 壓縮指令執行壓縮、解壓縮。
打包的 tar 指令 • 在此先舉一些最常用的範例: • 以下就其各種功能分別解說。
打包的 tar 指令 • 壓縮與解壓縮 • 打包與解開 • 更新與刪除
壓縮與解壓縮 • tar指令本身沒有壓縮能力, 但是我們可以在產生 tar 檔案後, 立即使用其他壓縮指令來壓縮, 省去需要輸入兩次指令的麻煩: • 使用 -z 參數來解開最常見的 .tar.gz 檔案:
壓縮與解壓縮 • 使用 -j 參數解開 tar.bz2 壓縮檔:
壓縮與解壓縮 • 使用 -Z 參數指定以 compress指令壓縮, 或以 uncompress指令解壓縮 tar檔:
壓縮與解壓縮 • 使用 --totals 參數可在打包完成後, 顯示寫入的 bytes 數:
打包與解開 • tar的主要功能在於打包和解開, 讓我們看看其他相關參數的運作: • 使用 --atime-preserve 參數, 可將解開後的檔案以原來的檔案時間存檔:
打包與解開 • 使用 -h 參數指定打包檔案時, 若遇到符號連結, 要儲存符號連結所連結的檔案, 而不是符號連結本身:
更新與刪除 • 暸解了打包和解開的方法後, 接著看看如何針對部份檔案做更新與刪除的處理, 請看以下範例說明: • 使用 --delete 參數刪除 .tar 檔中的檔案: • 使用 -r 參數將檔案附加到 tar 檔後面:
更新與刪除 • 使用 -k 參數解開 tar 檔案時, 不覆蓋已存在的檔案: • 使用 --remove-files 參數將檔案移入 tar 檔案中, 並移除原檔案:
9-2 壓縮與解壓縮的 zip 和 unzip 指令 • 在 Linux 中有許多不同的壓縮及解壓縮程式, 接下來介紹的是處理 .zip 檔的zip 和unzip 指令。這 2 個指令位於 /usr/bin 目錄中 , 它們和 DOS 下的pkzip、pkunzip 以及 Windows 的 WinZip 軟體功能一樣, 可將檔案壓縮成 .zip檔以節省磁碟空間, 需要使用的時候, 再將壓縮檔解開。
壓縮與解壓縮的 zip 和 unzip 指令 • 壓縮 .zip 檔案的 zip 指令 • 解壓縮 .zip 檔的 unzip 指令
壓縮 .zip 檔案的 zip 指令 • zip指令可用來壓縮檔案, 如果我們有許多檔案需要做壓縮, zip 指令甚至可以將它們一併處理並壓縮成一個檔案。 • 一般zip 指令最常用的方法, 是依序在指令後加上壓縮後的指定檔名, 以及要壓縮的檔案。
壓縮 .zip 檔案的 zip 指令 • 若不清楚 zip 指令的執行參數, 可直接執行 zip 指令, 顯示版權與語法說明:
壓縮 .zip 檔案的 zip 指令 • 壓縮指定的檔案 (可同時指定不同副檔名的檔案):
壓縮 .zip 檔案的 zip 指令 • 使用 -g 參數可壓縮指定的檔案, 並加入已存在的壓縮檔中:
壓縮 .zip 檔案的 zip 指令 • 使用 -j 參數壓縮時, 只會加入檔案的名稱及內容, 不會包含目錄結構:
壓縮 .zip 檔案的 zip 指令 • 使用 -r 參數, 可在壓縮時包含所有子目錄下的內容:
解壓縮 .zip 檔的 unzip 指令 • unzip指令用來將 zip指令壓縮產生的檔案解壓縮。 • 您同樣可不加任何參數, 直接執行 unzip 指令, 取得參數及使用說明。 • 將檔案全部解壓縮:
解壓縮 .zip 檔的 unzip 指令 • 將檔案解壓縮至某個目錄下: • 要解壓縮時, 若原來的檔案已存在目錄中, 就不解壓縮;若不存在, 才解壓縮: • 解壓縮時不要依照原來的目錄結構, 而將檔案置於現行目錄下:
9-3 壓縮與解壓縮的 gzip 和 gunzip 指令 • 除了 .zip 檔的壓縮格式外, 在 Linux 系統下更常見的是 .gz 檔的壓縮格式,這種檔案一般是由 gzip指令所產生。 • 由於 zip指令能將許多檔案壓縮成一個檔案功能, 但 gzip不能, 所以 gzip一般會和 tar合併使用。目前大部分的壓縮檔大都是用 tar將所有檔案包裝成一個檔案, 再用 gzip做壓縮, 所以副檔名為 .tar.gz或 .tgz 者, 大多就是這類型的檔案。
壓縮與解壓縮的 gzip 和 gunzip 指令 • 壓縮檔案的 gzip • 解壓縮 .gz 檔的 gunzip
壓縮檔案的 gzip • gzip和zip同為壓縮指令, 有了前面的基礎, 要使用 gzip應該事半功倍。使用 gzip -h可得到指令的參數及語法說明, 現在讓我們看看一些範例: • 壓縮及解壓縮:
壓縮檔案的 gzip • 解壓縮時, 使用 -f 參數, 可強迫覆蓋輸出檔案, 不要提示詢問訊息:
解壓縮 .gz 檔的 gunzip • gunzip的用法與 gzip 一樣, 它們擁有相同的指令列選項。 • 其實 gunzip 與 gzip 基本上是同一支程式, 只是預設選項不同而已。操作上可以把 gunzip 視為 gzip -d指令, 故筆者在此不再贅述。
9-4 壓縮與解壓縮的 bzip2 和 bunzip2 指令 • 在網路上還有一種 *.tar.bz2 的壓縮檔, 是先以 tar指令打包, 再用 bzip2指令壓縮的檔案。由於 bzip2指令的壓縮能力較好, 通常用來壓縮系統核心或修補檔。 • *.tar.bz2 的解壓縮方法如下:
壓縮與解壓縮的 bzip2 和 bunzip2 指令 • 以下舉幾個常用的範例: • bzip2 指令與 gzip 指令一樣, 在壓縮與解壓縮後會將原檔刪除, 若希望保留原檔, 可加上 -k 參數:
壓縮與解壓縮的 bzip2 和 bunzip2 指令 • bzip2與bunzip2 指令位於 /usr/bin 目錄下, bunzip2指令實際上是指向 bzip2 指令的符號連結, 執行 bzip2指令時加上 -d 參數亦可將 .bz2 檔解壓縮: • bzip2 與bunzip2 在功能、參數的用法上與 gzip 幾乎一樣, 您也可以使用這個壓縮程式。
9-5 壓縮與解壓縮的 compress 和 uncompress 指令 • compress指令可以將檔案壓縮成 .Z 檔, uncompress指令則可以將 .Z 檔解壓縮。 • 但uncompress指令實際上是指向 compress指令的符號連結, 所以真正負責解壓縮工作的還是 compress指令。 • 一般使用 compress指令壓縮檔案時, 只要在指令後加上要壓縮的檔案即可。
壓縮與解壓縮的 compress 和 uncompress 指令 • compress 指令與 gzip指令一樣在壓縮完成後, 將只留下壓縮後的檔案, 原始檔案會被刪除。範例如下:
壓縮與解壓縮的 compress 和 uncompress 指令 • compress指令可說是 Linux 中壓縮程式的老前輩, 由於其壓縮率較差, 目前已較少使用, 並且使用 gunzip 指令也可以解壓縮 .Z 檔, 故筆者在此不再對其參數多作說明。