如果您常常在網路上面捉
linux
^_^
!而,您應該也會知道,這些被壓縮過的檔案,通常其附檔名都是『
*.tar, *.tar.gz, *.tgz, *.gz, *.z, *.bz2
』等等的,為什麼要訂定這些壓縮檔案附檔名為這樣的模樣呢?這是因為在
linux
上面壓縮的指令相當的多,並且,這些壓縮指令可能無法針對每種壓縮檔案都可以解的開,畢竟目前的壓縮技術五花八門,每種壓縮計算的方法都不是完全相同的,所以囉,當你捉到某個壓縮檔時,自然就需要知道壓縮他的是那個指令啦,好用來對照著解壓縮啊!
^_^!也就是說,雖然
linux
檔案的屬性基本上是與檔名沒有絕對關係的,能不能執行與他的檔案屬性有關而已,與檔名的關係很小!但是,為了幫助我們小小的人類腦袋瓜子,所以適當的檔名稱附檔名還是必要的!因此,目前就有一些常常見到的壓縮檔案的附檔名啦!我們僅列出常見的幾樣在底下,給大家權做參考之用: ·
*.z ***press
程式壓縮的檔案; ·
*.bz2 bzip2
程式壓縮的檔案; ·
*.gz gzip
程式壓縮的檔案; ·
*.tar tar
程式打包的資料,並沒有壓縮過; ·
*.tar.gz tar
程式打包的檔案,其中並且經過
gzip
的壓縮!
目前常見的壓縮程式主要就是如同上面提到的附檔名對應的那些指令啦!最早期的要算是
***press
這個傢伙了,而後,後來的
gnu 計畫
開發出新一代的壓縮指令
gzip ( gnu zip )
用來取代
***press
這個老牌的壓縮指令,再來還有
bzip2
這個壓縮比更好的壓縮指令呢!不過,這些指令通常僅能針對乙個檔案來壓縮與解壓縮,如此一來,每次壓縮與解壓縮都要一大堆檔案,豈不煩人?,此時,那個所謂的『打包軟體』就顯的很重要啦!在
unix-like
當中,有個軟體很好玩,他就是
tar
這支程式!這個
tar
可以將很多檔案『打包』成為乙個檔案!甚至是目錄也可以這麼玩。不過,單純的
tar
功能僅是『打包』而已,亦即是將很多檔案集結成為乙個檔案,事實上,他並沒有提供壓縮的功能,後來,
gnu 計畫
中,將整個
tar
與壓縮的功能結合在一起,如此一來提供使用者更方便並且更強大的壓縮與打包功能!
底下我們就來談一談這些在
linux
底下基本的壓縮指令吧!
tar 語法
tar [-zxcvfpp] filename
tar -n 'yyyy/mm/dd' /path -zcvf target.tar.gz source
引數說明:
-z
:是否同時具有
gzip
的屬性?
-x
:解開乙個壓縮檔案的引數指令!
-t
:檢視tarfile
裡面的檔案!
-c
:建立乙個壓縮檔案的引數指令
-v
:壓縮的過程中顯示檔案!
-f
:使用檔名,請留意,在
f 之後要立即接檔名喔!不要再加引數!
例如使用『
tar -zcvfp tfile sfile
』就是錯誤的寫法,要寫成
『tar -zcvpf tfile sfile
』才對喔!
-p
:使用原檔案的原來屬性(屬性不會依據使用者而變)
-p
:可以使用絕對路徑
-n
:比後面接的日期
(yyyy/mm/dd)
還要新的才會被打包進新建的檔案中!
--exclude file
:在壓縮的過程中,不要將
file
打包!範例:
[root @test /root]#
tar -cvf directory.tar directory
只將目錄整合打包成乙個檔案
[root @test /root]#
tar -zcvf directory.tar.gz directory
除了將目錄打包外,同時以
gzip
壓縮[root @test /root]#
tar -zcvf filename.tar.gz /home/test/*
將/home/test/
這個目錄下的檔案全部打包並壓縮成為乙個
filename.tar.gz
的檔案[root @test /root]#
tar -xvf directory.tar
解tar
的封包,請注意,由於沒有
gzip (.tar
而非.tar.gz)
的作用,所以只要使用
–xvf
即可!不需要加上
z ,否則會顯示有問題!
[root @test /root]#
tar -zxvf directory.tar.gz
這個就是有加上
gzip
的壓縮的結果!所以需要加上
–z 呦!
[root @test /root]#
tar –ztvf directory.tar.gz
這個t
可以用來檢視
tar
裡面的檔案資訊呢!而不需要將他解開!
[root @test /root]#
tar-zcvpf home.tar.gz /home
則建立起來的壓縮檔內檔案為絕對路徑
請注意,使用這個
p 的引數時,不要將
p 加在
f 後面,因為
f 之後要立即接檔名才行喔!
[root @test /root]#
tar -n '2002/06/25' -zcvf home.tar.gz /home
上面是說
在/home
這個目錄中,比
2002/06/25
日還要新的檔案才會被打包進入
home.tar.gz
這個檔案中!
[root @test /root]#
tar -zcvf
host.tar.gz / --exclude /mnt --exclude /proc
上面是說,將根目錄的所有資料都打包進
host.tar.gz
這個檔案中,但是
/mnt
及/proc
則不打包!
[root @test /root]#
tar -cvf - /home | tar -xvf -
上面的意思是『將
/home
打包之後,直接解壓縮在
/root
底下!』嘿嘿!不需要再建立一次中間檔案!不過,使用上面的語法最好使用『絕對路徑』,比較不會有問題!這個方式適合不想要建立中間檔案時!
linux壓縮檔案
linux壓縮檔案的讀取 z compress 程式壓縮的檔案 bz2 bzip2 程式壓縮的檔案 gz gzip 程式壓縮的檔案 tar tar 程式打包的資料,並沒有壓縮過 tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮!zip zip 程式壓縮檔案 rar rar 程式壓...
Linux命令 壓縮檔案
1.zip 壓縮檔案 zip zip 壓縮目錄 zip r zip 解壓縮 unzip unzip xx.zip d test 解壓縮到指定資料夾下 2.gz格式壓縮 gzip 壓縮後原始檔消失 gzip c gzip 將檔案壓縮,結果輸出到螢幕上 壓縮目錄 gzip r 壓縮目錄下的子檔案,本身不...
Linux壓縮檔案的讀取
linux壓縮檔案的讀取 z compress 程式壓縮的檔案 bz2 bzip2 程式壓縮的檔案 gz gzip 程式壓縮的檔案 tar tar 程式打包的資料,並沒有壓縮過 tar.gz tar 程式打包的檔案,其中並且經過gzip 的壓縮!zip zip 程式壓縮檔案 rar rar 程式壓縮...