1. 程式人生 > >淺談Linux下各種壓縮 解壓命令和壓縮比率對比

淺談Linux下各種壓縮 解壓命令和壓縮比率對比

轉載,收藏

tar命令是linux下非常常用的命令,這篇文章對該命令介紹的比較詳細,因此轉載加收藏吧。

Linux下壓縮、解壓命令五花八門,不像在windows下一個winrar打遍天下無敵手,清一色的.rar .zip格式。

比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而足。而每種壓縮和解壓方式所耗CPU時間和壓縮比率也差異甚大。在此我一一列舉,希望不當之處,敬請各位指教。
---------------------------------------------------------------------------------------------
1 各種壓縮 解壓命令Demo


(1) tar
僅僅做打包動作,相當於歸檔處理,不做壓縮;解壓也一樣,只是把歸檔檔案釋放出來。

打包歸檔:
tar -cvf examples.tar examples  (examples為shell執行路徑下的目錄)

釋放解壓:
tar -xvf examples.tar (解壓至當前shell執行目錄下)
tar -xvf examples.tar  -C /path (/path 解壓至其它路徑)

(2)tar.gz tgz  (tar.gz和tgz只是兩種不同的書寫方式,後者是一種簡化書寫,等同處理)
Linux下使用非常普遍的一種壓縮方式,兼顧了壓縮時間(耗費CPU)和壓縮空間(壓縮比率)
其實這是對(1)的tar包進行gzip演算法的壓縮


打包壓縮:
tar -zcvf examples.tgz examples  (examples為shell執行路徑下的目錄)

釋放解壓:
tar -zxvf examples.tar (解壓至當前shell執行目錄下)
tar -zxvf examples.tar  -C /path (/path 解壓至其它路徑)

(3)tar.bz
Linux下壓縮比率較tgz大,即壓縮後佔用更小的空間,使得壓縮包看起來更小。但同時在壓縮,解壓的過程卻是非常耗費CPU時間。

打包壓縮:
tar -jcvf examples.tar.bz examples  (examples為shell執行路徑下的目錄)

釋放解壓:
tar -jxvf examples.tar.bz (解壓至當前shell執行目錄下)

tar -jxvf examples.tar.bz  -C /path (/path 解壓至其它路徑)

(4) tar.bz2
較tar.bz有著更快速的效率。所使用的命令與(3)相同,不再贅述。

(5) .gz
壓縮:
gzip-d examples.gz examples

解壓:
gunzip examples.gz

(6) .Z
壓縮:
compress files

解壓:
uncompress examples.Z

(7) tar.Z
壓縮:
tar -Zcvf examples.tar.Z examples

解壓:
tar -Zxvf examples.tar.Z

(8) .zip
壓縮:
zip -r examples.zip examples (examples為目錄)

解壓:
zip examples.zip

(9) .rar
壓縮:
rar -a examples.rar examples

解壓:
rar -x examples.rar
----------------------------------------------------------------------------------------
2 各種壓縮比率,佔用時間對比

為了保證能夠讓壓縮比率較為明顯,需選取一個內容較多、佔用空間較大的目錄作為Demo。我將自己Ubuntu 9.10中/user/local整個目錄作為範例,/user/local內所有檔案總計大小為877.7MB。

在此,我們定義 壓縮比率=原內容大小/壓縮後大小,壓縮比率越大,則表明壓縮後佔用空間的壓縮包越小

(1).tar
tar -cvf local.tar /usr/local
打包後 local.tar: 892.6MB, 耗費時間:55 s (秒)。此實驗打包後.tar後反倒比原來檔案內容更大,出乎意料!
壓縮比率為877.7/892.6=0.98(居然不是相同,等於1!)

 tar -xvf local.tar
釋放877.7MB(與原/usr/local大小完全相同,符合預期),耗費時間:78 s,比打包耗時

對於.tar而言,打包比釋放較為快速,但打包後的.tar比原目錄內容所佔空間要大。

(2) .tgz
tar -zcvf local.tgz /usr/local
打包後 local.tgz: 344.1MB, 耗費時間: 146 s (秒)。此實驗說明.tgz壓縮到50%以下的空間,具體為 壓縮比率=877.7/344.1 =2.55

tar -zxvf local.tar
解壓877.7MB,耗費時間: 56 s。 此與.tar 正相反,解壓比打包省時了很多,接近到打包時間的三分之一。

(3) .tar.bz
tar -jcvf local.tar.bz /usr/local
打包後local.tar.bz: 318.4 MB  耗費時間:330 s(即5 m 30 s,非常之漫長!)
壓縮比率為877.7/318.4=2.76

相對於.tgz的壓縮得更小巧,但優勢並不大,CPU耗費時間卻多了兩倍多。

tar -xcvf local.tar.bz
解壓877.7 MB,耗費時間: 128 s。 此與.tgz相似,解壓比打包省時很多,接近打包時間的三分之一。

(4) .tar.bz2
tar -jcvf local.tar.bz2 /usr/local
打包後local.tar.bz:  318.4 MB  耗費時間: 302 s
壓縮比率為877.7/318.4=2.76

與.tar.bz打包後大小完全一致,但CPU耗費時間稍少一點。因此從此實驗說明,網上一些言論稱tar.bz2比tar.bz有著更大的壓縮比率似乎說不通,只是速度稍快,高效了一些而已。

tar -xcvf local.tar.bz
解壓877.7 MB,耗費時間:  123 s。 此與.tar.bz相差不大,略有優勢。

由此可見,對於tar.bz 與tar.bz2打包後並無差異,只是tar.bz2較為快速,時間上略佔上風。

其它如.zip  .Z .rar等壓縮方式在Linux下使用不是非常廣泛,在此不做進一步探討實驗。

綜合起來,在壓縮比率上: tar.bz=tar.bz2>tgz>tar
 佔用空間與壓縮比率成反比: tar.bz=tar.bz2<tgz<tar
 耗費時間(打包,解壓)
 打包:tar.bz>tar.bz2>tgz>tar
 解壓: tar.bz>tar.bz2>tar>tgz
 從效率角度來說,當然是耗費時間越短越好

因此,Linux下對於佔用空間與耗費時間的折衷多選用tgz格式,不僅壓縮率較高,而且打包、解壓的時間都較為快速,是較為理想的選擇。

如果對效率很關切,非常在乎時間的話,選擇tgz tar的方式都不錯。當然,如果disk空間較為緊張,非常在乎空間的話,選擇高壓縮比率的tar.bz2則更為適宜。
-----------------------------------------------------------------------------------------

結論:

再一次印證了物理空間與時間的矛盾(想佔用更小的空間,得到高壓縮比率,肯定要犧牲較長的時間;反之,如果時間較為寶貴,要求快速,那麼所得的壓縮比率一定較小,當然會佔用更大的空間了)。

相關推薦

Linux各種壓縮 命令壓縮比率對比

轉載,收藏 tar命令是linux下非常常用的命令,這篇文章對該命令介紹的比較詳細,因此轉載加收藏吧。 Linux下壓縮、解壓命令五花八門,不像在windows下一個winrar打遍天下無敵手,清一色的.rar .zip格式。比如,Linux下常用的tar tar.gz

Linux常用壓縮 命令壓縮比率對比

常用的格式有: tar, tar.gz(tgz), tar.bz2, 不同方式,壓縮和解壓方式所耗CPU時間和壓縮比率也差異也比較大。 tar 只是打包動作,相當於歸檔處理,不做壓縮;解壓也一樣,只是把歸檔檔案釋放出來。 (1)打包歸檔格式: tar -

Linux包/打包,壓縮/命令

res file bzip2 lena dirname unzip bz2 裏的 dir .tar 解包:tar xvf FileName.tar 打包:tar cvf fileName.tar DirName tar.gz和.tgz 解壓:tar zxvf FileNam

Linux常用壓縮命令

tar  解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是壓縮!) .gz 解壓1:gunzip FileName.gz 解壓2:g

Linux壓縮命令壓縮比介紹說明

Linux下壓縮、解壓命令很多靈活度很大,不像在windows下winrar或360壓縮幾乎各佔版比江山,清一色的.rar .zip格式。Linux下常用的tar tar.gz tar.bz2 .Z等等格式種類繁多。而每種壓縮和解壓方式所耗CPU時間和壓縮比率也差異甚大。在此我一一列舉,

Linux壓縮&命令

【tar命令】 解壓:tar -zxvf FileName.tar 壓縮:tar -czvf FileName.tar DirName 【gz命令】 解壓1:gunzip FileName.gz 解壓2:gzip -d FileName.gz 壓

Linux安裝zip壓縮功能

liunx伺服器上預設沒有安裝zip命令,所以使用時需安裝: apt-get install zip 或 yum install zip linux安裝unzip命令: apt-get install unzip 或 yum install unzip

linuxjar的壓縮

在部署專案是需要對jar中的檔案進行編輯,這就要在linux命令列下對jar進行解壓縮操作。比如有個jar包,/usr/local/EtnetChinaApplication.jar解包到臨時目錄cd /usr/localunzip EtnetChinaApplicatio

Linux建立與zip, tar, tar.gztar.bz2檔案及該檔案壓縮對比

目前Linux下常見的壓縮副檔名: *.Z compress程式壓縮的檔案(最早期使用),壓縮後取代原始檔; *.zip一個誇平臺的檔案打包程式,適用於Linux、windows和Mac OS系統; *.bz2 bzip2程式壓縮的檔案; *.gz

Linux學習 - 壓縮命令

clas unzip 解包 col 語法 壓縮 linu style body 一、“ .gz ”壓縮文件   1 壓縮語法       gzip [文件]   2 解壓語法       gunzip [壓縮文件]   3 註       gzip只能壓縮文件     

004-linux常用命令-壓縮命令

壓縮解壓命令:gzip命令名稱:gzip命令英文原意:GNUzip命令所在路徑:/bin/gzip執行許可權:所有使用者語法:gzip [檔案]功能描述:壓縮檔案壓縮後文件格式:.gz   壓縮解壓命令:gunzip命令名稱:gunzip命令英文原意:GNUunzip命令所在路徑:/bin/gu

Linux常用壓縮命令

tar命令   解包:tar zxvf FileName.tar   打包:tar czvf FileName.tar DirName gz命令   解壓1:gunzip FileName.gz   解壓2:gzip -d FileName.gz   壓縮:gzip FileName   .t

linux 壓縮命令

tar -c: 建立壓縮檔案 -x:解壓 -t:檢視內容 -r:向壓縮歸檔檔案末尾追加檔案 -u:更新原壓縮包中的檔案 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的引數是根據需要在壓縮或解壓檔案時可選的。 -z:有gzip屬性的 -j:有bz

Linux使用shell打包jar包

linux 下使用shell解壓打包jar包 在工作做時,有時會碰到開發人員並沒有把配置檔案獨立出來,而量把他打包進了jar包裡面,這裡運維人員會產生很大的影響,特別的是在除錯需要經常修改配置檔案的時候,運維人員需要把jar包下載到本地,解壓,修改配置檔案,打包,在上傳。 極大的影響

linux壓縮命令

常用的壓縮命令: tar –cvf jpg.tar *.jpg //將目錄裡所有jpg檔案打包成tar.jpg tar –czf jpg.tar.gz *.jpg //將目錄裡所有jpg檔案打包成jpg.tar後,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名為

Linux視訊學習筆記(五)--許可權管理命令、檔案搜尋命令、幫助命令、使用者管理命令壓縮命令

宣告:本系列文章是博主根據 “兄弟連新版Linux視訊教程”做的筆記和視訊截圖,只為學習和教學使用,不適用任何商業用途。 PS:文章基於Linux版本CentOS6.9,如果對Linux感興趣,建議去看《細說Linux》,沈超老師和李明老師的教學風格我很喜歡:) 4.

Linux常見命令——幫助命令、使用者管理命令壓縮命令、網路命令、關機

一、檔案搜尋——幫助命令1.man [命令/配置檔案]檢視命令/配置檔案的幫助資訊和more、less的用法相似注:檢視配置檔案幫助資訊的時候,直接輸入配置檔名即可,無需加上絕對路徑2.whatis [命令]簡單的說明命令3.apropos[配置檔案]簡單的說明配置檔案4.命

Linux 常見命令 壓縮命令

unzip 格式 tar.bz2 bzip 解壓命令 詳細 tar -cvf 總結 zxvf .gz壓縮格式 壓縮命令 :gzip [文件] 解壓命令:gunzip [文件] 或 gzip -d [文件] .tar.gz壓縮格式 打包目錄 壓縮命令:tar -cvfz

Linuxmvcp命令的區別

我之前在專案中遇到一個很奇怪的問題,對於inotify監視一個檔案的時候,發現有些時候inotify有些時候會 “失效”。後來我就沒辦法,去監視檔案所在的目錄。看下面的, #!/bin/bash src=/tmp/test/test.txt # direc

LinuxLinux的PCB—task_struct結構體

1.1 程序的概念 我之前在作業系統這門課中學過的有關程序的概念如下:        從作業系統層面上講:程序是程式的一次執行過程,是系統進行資源分配和處理機排程的一個獨立單位。程序的結構特性:程序=程式段+資料段+程序控制塊。程序的三種基本狀態:        · 就緒