Linux下常用壓縮 解壓命令和壓縮比率對比
阿新 • • 發佈:2018-11-29
常用的格式有:
tar, tar.gz(tgz), tar.bz2,
不同方式,壓縮和解壓方式所耗CPU時間和壓縮比率也差異也比較大。
- tar
只是打包動作,相當於歸檔處理,不做壓縮;解壓也一樣,只是把歸檔檔案釋放出來。
(1)打包歸檔格式:
tar -cvf examples.tar files|dir
#說明:
-c, --create create a new archive 建立一個歸檔檔案
-v, --verbose verbosely list files processed 顯示建立歸檔檔案的程序
-f, --file=ARCHIVE use archive file or device ARCHIVE 後面要立刻接被處理的檔案名,比如--file=examples.tar
#舉例:
tar -cvf file.tar file1 #file1檔案
tar -cvf file.tar file1 file2 #file1,file2檔案
tar -cvf file.tar dir #dir目錄
(2)釋放解壓格式:
tar -xvf examples.tar (解壓至當前目錄下)
tar -xvf examples.tar -C /path (/path 解壓至其它路徑)
#說明:
-x, --extract, extract files from an archive 從一個歸檔檔案中提取檔案
#舉例:
tar -xvf file.tar
tar -xvf file.tar -C /temp #解壓到temp目錄下
- tar.gz tgz (tar.gz和tgz只是兩種不同的書寫方式,後者是一種簡化書寫,等同處理)
這種格式是Linux下使用非常普遍的一種壓縮方式,
兼顧了壓縮時間(耗費CPU)和壓縮空間(壓縮比率)
其實這是對tar包進行gzip演算法的壓縮
(1)打包壓縮格式:
tar -zcvf examples.tgz examples (examples當前執行路徑下的目錄)
說明:
-z, --gzip filter the archive through gzip 通過gzip壓縮的形式對檔案進行歸檔
舉例:
tar -zcvf file.tgz dir #dir目錄
(2)釋放解壓格式:
tar -zxvf examples.tar (解壓至當前執行目錄下)
tar -zxvf examples.tar -C /path (/path 解壓至其它路徑)
舉例:
tar -zcvf file.tgz
tar -zcvf file.tgz -C /temp
3 tar.bz
Linux下壓縮比率較tgz大,即壓縮後佔用更小的空間,使得壓縮包看起來更小。
但同時在壓縮,解壓的過程卻是非常耗費CPU時間。
(1)打包壓縮格式:
tar -jcvf examples.tar.bz2 examples (examples為當前執行路徑下的目錄)
說明:
-j, --bzip2 filter the archive through bzip2 通過bzip2壓縮的形式對檔案進行歸檔
舉例:
tar -jcvf file.tar.bz2 dir #dir目錄
(2)釋放解壓:
tar -jxvf examples.tar.bz2 (解壓至當前執行目錄下)
tar -jxvf examples.tar.bz2 -C /path (/path 解壓至其它路徑)
舉例:
tar -jxvf file.tar.bz2
tar -jxvf file.tar.bz2 -C /temp
4 gz
壓縮:
gzip -d examples.gz examples
解壓:
gunzip examples.gz
5 zip
zip 格式是開放且免費的,所以廣泛使用在 Windows、Linux、MacOS 平臺,要說 zip 有什麼缺點的話,就是它的壓縮率並不是很高,不如 rar及 tar.gz 等格式。
壓縮:
zip -r examples.zip examples (examples為目錄)
解壓:
zip examples.zip
6 .rar
壓縮:
rar -a examples.rar examples
解壓:
rar -x examples.rar
壓縮比率,佔用時間對比
為了保證能夠讓壓縮比率較為明顯,需選取一個內容較多、佔用空間較大的目錄作為本次實驗的測試。
找了一個大概有23G的目錄來測試,首先要明確由於執行環境的變化,誤差在所難免
首先明確一個概念:
壓縮比率=原內容大小/壓縮後大小,壓縮比率越大,則表明壓縮後佔用空間的壓縮包越小
.tar
打包:
time tar -cvf test.tar /usr/test
時間:
real 3m20.709s
user 0m3.477s
sys 0m42.595s
大小:
打包前:23214680
打包後:22202984
耗時:3m20.709s
壓縮比率:22202984/23214680
解壓:
time tar -xvf test.tar
大小:
解壓前:22202984
解壓後:23211064
耗時:
real 2m47.548s
user 0m4.999s
sys 1m14.186s
.tgz
打包壓縮:
time tar -zcvf test.tgz /usr/test
時間:
real 16m30.767s
user 16m1.394s
sys 1m7.391s
大小:
打包前:23211064
打包後:18949032
耗時:
壓縮比率:
解壓:
tar -zxvf test.tar
大小:
解壓前:18949032
解壓後:23211064
耗時:
real 3m52.418s
user 2m46.325s
sys 1m21.442s
.tar.bz2
打包壓縮:
time tar -jcvf test.tar.bz2 /usr/test
時間:
real 80m39.422s
user 80m14.599s
sys 0m58.623s
大小:
打包前:23211064
打包後:18728904
耗時:80m39.422s
壓縮比率:
解壓:
time tar -jxvf test.tar.bz2
時間:
real 27m54.525s
user 27m44.108s
sys 1m43.645s
大小:
解壓前:18728904
解壓後:23211064
綜上結果,初步結論:
綜合起來,在壓縮比率上: tar.bz2>tgz>tar
佔用空間與壓縮比率成反比: tar.bz2