http://leedd.com/2010/01/linux-tar-tar-gz-tar-bz2/
Linux下創建與解壓zip, tar, tar.gz和tar.bz2文件及該文件壓縮對比
剛在qq群里面一位仁兄問到文件壓縮的命令,平時工作中大多用解壓縮命令,要是遇到壓縮就現查(這不是一個好習慣),於是整理下Linux下創建與解壓zip、tar、tar.gz和tar.bz2文件及他們之間壓縮率對比,在自己的腦袋內存空間有限又不經常使用的時候以便於備忘。現整理如下:
目前Linux下常見的壓縮文件擴展名:
*.Z compress程序壓縮的文件(最早期使用),壓縮后取代源文件; *.zip 一個誇平台的文件打包程序,適用於Linux、windows和Mac OS系統; *.bz2 bzip2程序壓縮的文件; *.gz gzip程序壓縮的文件; *.tar tar程序打包的文件,並沒有壓縮; *.tar.gz tar程序打包的文件,並經過gzip程序的壓縮; *.tar.bz2 tar程序打包的文件,並經過bzip2程序壓縮。
Tips:所謂擴展名只是大家約定的通用格式,是為了更方便的能一眼識別出是什么壓縮類型,當然你可以打包或壓縮為任意格式的后綴名,只要你願意。
A)*.zip格式是大家最常見的一種,它具有誇操作系統平台性,可以同時在windows、Linux和Mac Os上使用。
大家可以用zip格式壓縮那些需要共享給windows用戶的文件。壓縮與解壓.ZIP格式的文件:
[Lee@leedd.Com tmp]$ zip -r test.zip tmp adding: test/ (stored 0%) adding: test/data-file (deflated 24%) adding: test/r (deflated 51%)
下面是如果解壓一個zip文檔:
[Lee@leedd.Com tmp]$ rm -rf test #為測試解壓,先刪除當前目錄下的tmp文件 [Lee@leedd.Com tmp]$ unzip test.zip Archive: test.zip creating: test/ inflating: test/data-file inflating: test/r
B) 壓縮與解壓*.tar*、.tar.gz、*.tar.bz2 格式的文件及對比:
Tar是在Linux中使用得非常廣泛的文檔打包格式。它的好處就是它只消耗非常少的CPU以及時間去打包文件,他僅僅只是一個打包工具,並不負責壓縮,壓縮是由gzip與bzip2來實現的。因此把*.tar*、.tar.gz、*.tar.bz2 放到一起來舉例:
比如我們要把目錄/var/tmp下的test目錄打包壓縮到當前目錄
[Lee@leedd tmp]$ tar -cvf test.tar test ### 僅打包,不壓縮 [Lee@leedd tmp]$ tar -zcvf test.tar.gz test ### 打包后以gzip壓縮 [Lee@leedd tmp]$ tar -jcvf test.tar.bz2 test ### 打包后以bzip2壓縮 [Lee@leedd tmp]$ ll test.tar* ### 對比壓縮后文件大小 -rw-r--r-- 1 Lee mock 10240 01-18 17:05 test.tar -rw-r--r-- 1 Lee mock 357 01-18 17:06 test.tar.bz2 -rw-r--r-- 1 Lee mock 327 01-18 17:05 test.tar.gz
如何解壓縮包:
[Lee@leedd tmp]$ tar -xvf test.tar [Lee@leedd tmp]$ tar -xvf test.tar.gz [Lee@leedd tmp]$ tar -jxvf test.tar.bz2
上面測試中,每次要刪除解壓后的test文件后解壓打其他目錄,因為如果不定義解壓后目錄路徑和名字則默認解壓到當前目錄並以把壓縮包名稱作為文件夾名字。如果要解壓到其他目錄(如:/var/tmp/find)則如下:
[Lee@leedd tmp]$ tar -jxvf test.tar.bz2 -C /var/tmp/find
關於tar.gz和tar.bz2壓縮率的問題:
*.tar.gz 在壓縮時不會占用太多CPU的,而且可以得到一個非常理想的壓縮率。也會被簡寫成tgz。
*.tar.bz2網上好的資料說這種壓縮格式是壓縮率最好的、它比前面的方式要占用更多的CPU與時間。但是經過上面的試驗顯示發現test.tar.gz的大小竟然比test.tar.bz2的更小(這是否意味者*.tar.gz擁有更小的壓縮率? 至少這次實驗是這樣)
如下附上這次測驗的文件包(點擊文件名下載): Test文件夾中的2個文件: data-file 和 r test.tar test.tar.gz test.tar.bz2