淺談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
linux下jar的解壓和壓縮
在部署專案是需要對jar中的檔案進行編輯,這就要在linux命令列下對jar進行解壓縮操作。比如有個jar包,/usr/local/EtnetChinaApplication.jar解包到臨時目錄cd /usr/localunzip EtnetChinaApplicatio
Linux下建立與解壓zip, tar, tar.gz和tar.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
淺談Linux下mv和cp命令的區別
我之前在專案中遇到一個很奇怪的問題,對於inotify監視一個檔案的時候,發現有些時候inotify有些時候會 “失效”。後來我就沒辦法,去監視檔案所在的目錄。看下面的, #!/bin/bash src=/tmp/test/test.txt # direc
【Linux】淺談Linux下的PCB—task_struct結構體
1.1 程序的概念 我之前在作業系統這門課中學過的有關程序的概念如下: 從作業系統層面上講:程序是程式的一次執行過程,是系統進行資源分配和處理機排程的一個獨立單位。程序的結構特性:程序=程式段+資料段+程序控制塊。程序的三種基本狀態: · 就緒