第九章、檔案與檔案系統的壓縮與打包 Linux 系統常見的壓縮命令

來源:互聯網
上載者:User

標籤:style   http   io   os   使用   ar   檔案   資料   div   

Linux 系統常見的壓縮命令:

在Linux中,壓縮檔的副檔名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』

 Linux 支援的壓縮命令非常多,且不同的命令所用的壓縮技術並不相同,彼此之間可能就無法相互壓縮/解壓縮檔案。所以,當你下載到某個壓縮檔時,自然就需要知道該檔案是由哪種壓縮命令所製作出來的,好用來對照著解壓縮!雖然 Linux 檔案的屬性基本上是與檔名沒有絕對關係的,但是為了協助我們人類,所以適當的副檔名還是必要的!

*.Z         compress 程式壓縮的檔案;*.gz        gzip 程式壓縮的檔案;*.bz2       bzip2 程式壓縮的檔案;*.tar       tar 程式打包的資料,並沒有壓縮過;*.tar.gz    tar 程式打包的檔案,其中並且經過 gzip 的壓縮*.tar.bz2   tar 程式打包的檔案,其中並且經過 bzip2 的壓縮
bzip2 gzip命名僅能針對一個檔案來壓縮與解壓縮!

 tar 可以將很多檔案(目錄)『打包』成為一個檔案,它並沒有提供壓縮的功能,後來,GNU 計劃將tar 與壓縮的功能結合在一起,如此一來可以提供給使用者更方便並且更強大的壓縮與打包功能!

compress

gzip能解開使用 compress 壓縮的檔案!

[[email protected] ~]# yum install ncompressbase        100% |=========================| 1.1 kB    00:00updates     100% |=========================|  951 B    00:00addons      100% |=========================|  951 B    00:00extras      100% |=========================| 1.1 kB    00:00Setting up Install ProcessParsing package install argumentsResolving Dependencies              <==開始分析相依性--> Running transaction check---> Package ncompress.i386 0:4.2.4-47 set to be updated--> Finished Dependency ResolutionDependencies Resolved======================================================= Package       Arch   Version     Repository     Size=======================================================Installing: ncompress     i386   4.2.4-47    base            23 kTransaction Summary=======================================================Install      1 Package(s)  <==最後分析所要安裝的軟體數Update       0 Package(s)Remove       0 Package(s)Total download size: 23 kIs this ok [y/N]: y    <==這裡請按下 y 來確認安裝Downloading Packages:(1/1): ncompress-4.2.4-47 100% |=========================|  23 kB    00:00warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <[email protected]>" from http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5Is this ok [y/N]: y    <==這裡則是與數位簽章有關Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction  Installing: ncompress          ######################### [1/1

[[email protected] ~]# compress [-rcv] 檔案或目錄  <==這裡是壓縮[[email protected] ~]# uncompress 檔案.Z           <==這裡是解壓縮選項與參數:-r  :可以連同目錄下的檔案也同時給予壓縮!-c  :將壓縮資料輸出成為 standard output (輸出到螢幕)-v  :顯示壓縮後的檔案資訊以及壓縮過程中的一些檔名變化。範例一:將 /etc/man.config 複製到 /tmp ,並加以壓縮[[email protected] ~]# cd /tmp[[email protected] tmp]# cp /etc/man.config .[[email protected] tmp]# compress -v man.configman.config:  -- replaced with man.config.Z Compression: 41.86%[[email protected] tmp]# ls -l /etc/man.config /tmp/man*-rw-r--r-- 1 root root 4617 Jan  6  2007 /etc/man.config   <==原有檔案-rw-r--r-- 1 root root 2684 Nov 10 17:14 /tmp/man.config.Z <==經過壓縮的檔案!

複製到 /tmp 的 man.config 不見了!因為被壓縮成為 man.config.Z,在預設的情況中,被 compress 壓縮的原始檔案會不見,而壓縮檔會被建立起來, 而且副檔名會是 *.Z。

範例二:將剛剛的壓縮檔解開[[email protected] tmp]# uncompress man.config.Z[[email protected] tmp]# ll man*-rw-r--r-- 1 root root 4617 Nov 10 17:14 man.config

解壓縮後壓縮檔卻又不存在。如果想要保留原始檔案且又要建立壓縮檔可以使用 -c 的文法!

範例三:將 man.config 壓縮成另外一個檔案來備份[[email protected] tmp]# compress -c man.config > man.config.back.Z[[email protected] tmp]# ll man*-rw-r--r-- 1 root root 4617 Nov 10 17:14 man.config-rw-r--r-- 1 root root 2684 Nov 10 17:24 man.config.back.Z# -c會將壓縮過程的資料輸出到螢幕上,而不是寫入成為 # *.Z 的壓縮檔。所以,可以透過資料流重導向的方法將資料輸出成為另一個檔名。

compress 已經很少人在使用了,因為compress無法解開 *.gz 的檔案,而 gzip 則可以解開 *.Z 的檔案

gzip, zcat

 gzip 可以解開 compress, zip 與 gzip 等軟體所壓縮的檔案。   *.gz

[[email protected] ~]# gzip [-cdtv#] 檔名[[email protected] ~]# zcat 檔名.gz選項與參數:-c  :將壓縮的資料輸出到螢幕上,可透過資料流重導向來處理;-d  :解壓縮的參數;-t  :可以用來檢驗一個壓縮檔的一致性 看看檔案有無錯誤;-v  :可以顯示出原檔案/壓縮檔的壓縮比等資訊;-#  :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是 -6範例一:將 /etc/man.config 複製到 /tmp ,並且以 gzip 壓縮[[email protected] ~]# cd /tmp [[email protected] tmp]# cp /etc/man.config .[[email protected] tmp]# gzip -v man.configman.config:      56.1% -- replaced with man.config.gz[[email protected] tmp]# ll /etc/man.config /tmp/man*-rw-r--r-- 1 root root 4617 Jan  6  2007 /etc/man.config-rw-r--r-- 1 root root 2684 Nov 10 17:24 /tmp/man.config.back.Z-rw-r--r-- 1 root root 2057 Nov 10 17:14 /tmp/man.config.gz  <==gzip壓縮比較佳

在預設的狀態下原本的檔案會被壓縮成為 .gz 的檔名, 原始檔案就不再存在了。使用 gzip 壓縮的檔案在 Windows 系統中,可以被 WinRAR 這個軟體解壓縮:

範例二:由於 man.config 是文字檔,請將範例一的壓縮檔的內容讀出來![[email protected] tmp]# zcat man.config.gz# 由於 man.config 這個原本的檔案是是文字檔,因此我們可以嘗試使用 zcat  去讀取!# 此時螢幕上會顯示 man.config.gz 解壓縮之後的檔案內容!範例三:將範例一的檔案解壓縮[[email protected] tmp]# gzip -d man.config.gz# 不要使用 gunzip 這個命令,不好背!使用 gzip -d 來進行解壓縮!# 與 gzip 相反, gzip -d 會將原本的 .gz 刪除,產生原本的 man.config 檔案。範例四:將範例三解開的 man.config 用最佳的壓縮比壓縮,並保留原本的檔案[[email protected] tmp]# gzip -9 -c man.config > man.config.gz

其實 gzip 的壓縮已經最佳化過了,所以雖然 gzip 提供 1~9 的壓縮等級,不過使用預設的 6 就非常好用了! 因此上述的範例四可以不要加入那個 -9 的選項。

cat 可以讀取純文字檔,那個 zcat 則可以讀取純文字檔被壓縮後的壓縮檔! 由於 gzip 這個壓縮命令主要想要用來取代 compress 的,所以不但 compress 的壓縮檔可以使用 gzip 來解開,同時 zcat 這個命令可以同時讀取 compress 與 gzip 的壓縮檔!

bzip2, bzcat

 gzip 是為了取代 compress 並提供更好的壓縮比而開發的,那麼 bzip2 則是為了取代 gzip 並提供更佳的壓縮比而開發的。

[[email protected] ~]# bzip2 [-cdkzv#] 檔名[[email protected] ~]# bzcat 檔名.bz2選項與參數:-c  :將壓縮的過程產生的資料輸出到螢幕上!-d  :解壓縮的參數-k  :保留原始檔案,而不會刪除原始的檔案喔!-z  :壓縮的參數-v  :可以顯示出原檔案/壓縮檔的壓縮比等資訊;-#  :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!範例一:將剛剛的 /tmp/man.config 以 bzip2 壓縮[[email protected] tmp]# bzip2 -z man.config # 此時 man.config 會變成 man.config.bz2 !範例二:將範例一的檔案內容讀出來![[email protected] tmp]# bzcat man.config.bz2# 此時螢幕上會顯示 man.config.bz2 解壓縮之後的檔案內容!!範例三:將範例一的檔案解壓縮[[email protected] tmp]# bzip2 -d man.config.bz2範例四:將範例三解開的 man.config 用最佳的壓縮比壓縮,並保留原本的檔案[[email protected] tmp]# bzip2 -9 -c man.config > man.config.bz2
使用 compress 副檔名自動建立為 .Z ,使用 gzip 副檔名自動建立為 .gz 。 bzip2 則是自動的將副檔名建置為 .bz2!

bzcat 這個命令可以讀取內容

 

第九章、檔案與檔案系統的壓縮與打包 Linux 系統常見的壓縮命令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.