Linux下常用壓縮 解壓命令和壓縮比率對比

2021-10-24 12:20:54 字數 3916 閱讀 5973

常用的格式有: tar, tar.gz(tgz), tar.bz2,

不同方式,壓縮和解壓方式所耗cpu時間和壓縮比率也差異也比較大。

1. 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目錄下

2. 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.bz2tgz>tar 解壓: tar.bz2>tar>tgz 從效率角度來說,當然是耗費時間越短越好

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

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

Linux下常用壓縮解壓命令

tar 打包和解包 沒有壓縮 解包 tar xvf filename.tar 打包 tar cvf filename.tar dirname gz解壓1 gunzip filename.gz 解壓2 gzip d filename.gz 壓縮 gzip filename tar.gz 和 tgz 解...

Linux下常用壓縮解壓命令

tar 解包 tar xvf filename.tar 打包 tar cvf filename.tar dirname 注 tar是打包,不是壓縮!gz解壓1 gunzip filename.gz 解壓2 gzip d filename.gz 壓縮 gzip filename tar.gz 和 tg...

Linux下常用壓縮 解壓縮命令

一是單純的單檔案壓縮工具,主要有compress,gzip,bzip2.二是打包壓縮工具,也是最常用的,tar 壓縮比 compress tar準確的說是乙個打包工具,而不是壓縮工具。tar的功能主要是將目錄中的檔案進行打包,之所以能夠壓縮檔案所佔的空間,其實還是利用了gzip或者bzip2兩個壓縮...