幾個常見的壓縮檔案擴充名
*.Z compress 程式壓縮的檔案;
*.gz gzip 程式壓縮的檔案;
*.bz2 bzip2 程式壓縮的檔案;
*.tar tar 程式打包的資料,并沒有壓縮過;
*.tar.gz tar 程式打包的檔案,其中并且經過 gzip 的壓縮
*.tar.bz2 tar 程式打包的檔案,其中并且經過 bzip2 的壓縮
|
compress
[[email protected] ~]# yum install ncompress
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies <==開始分析相依性
--> Running transaction check
---> Package ncompress.i386 0:4.2.4-47 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================
Package Arch Version Repository Size
=======================================================
Installing:
ncompress i386 4.2.4-47 base 23 k
Transaction Summary
=======================================================
Install 1 Package(s) <==最後分析所要安裝的軟體數
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 23 k
Is this ok [y/N]: y <==這裡請按下 y 來确認安裝
Downloading Packages:
(1/1): ncompress-4.2.4-47 100% |=========================| 23 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key)
<[email protected]>" from http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y <==這裡則是與數位簽章有關
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: ncompress ######################### [1/1]
Installed: ncompress.i386 0:4.2.4-47
Complete!
|
[[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.config
man.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。仔細看一下,檔案由原本的 4617bytes 降低到 2684bytes左右,确實有減少一點。
範例二:将剛剛的壓縮檔解開
[[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
|
範例三:将 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 的壓縮檔。是以,我們可以透過資料流重導向的方法将資料輸出成為另一個檔名。
# 關於資料流重導向,我們會在第十一章 bash 詳細談論的啦!
|
再次強調,compress 已經很少人在使用了,因為這支程式無法解開 *.gz 的檔案,而 gzip 則可以解開 *.Z 的檔案, 是以,如果你的 distribution 上面沒有 compress 的話,那就不要進行上面的練習。
gzip,zcat
[[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.config
man.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壓縮比較佳
|
範例二:由於 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
|
cat 可以讀取純文字檔,那個 zcat 則可以讀取純文字檔被壓縮後的壓縮檔! 由於 gzip 這個壓縮指令主要想要用來取代 compress 的,是以不但 compress 的壓縮檔案可以使用 gzip 來解開,同時 zcat 這個指令可以同時讀取 compress 與 gzip 的壓縮檔.
bzip2,bzcat
[[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
|