1. 程式人生 > 其它 >Linux下常用壓縮 解壓命令和壓縮比率對比

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

轉自:https://www.joshua317.com/article/34

常用的格式有: 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 從一個歸檔檔案中提取檔案

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壓縮的形式對檔案進行歸檔

(2)釋放解壓格式:

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

3 tar.bz

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

(1)打包壓縮格式:

tar -jcvf file.tar.bz2 dir #dir目錄

說明: -j, --bzip2 filter the archive through bzip2 通過bzip2壓縮的形式對檔案進行歸檔

(2)釋放解壓:

tar -jxvf examples.tar.bz2 (解壓至當前執行目錄下)
tar -jxvf examples.tar.bz2  -C /path (/path 解壓至其它路徑)

4 gz 壓縮:

https://www.runoob.com/linux/linux-comm-gzip.html

gzip -d examples.gz examples

解壓:

https://www.runoob.com/linux/linux-comm-gunzip.html

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的目錄來測試,首先要明確由於執行環境的變化,誤差在所難免

首先明確一個概念: 壓縮比率=原內容大小/壓縮後大小,壓縮比率越大,則表明壓縮後佔用空間的壓縮包越小。

語法:

在打包或解壓命令加time,以tar打包舉例:

time tar -cvf test.tar /usr/test
對比如下:

綜合起來:

  • 在壓縮比率上: tar.bz2>tgz>tar
  • 佔用空間與壓縮比率成反比: tar.bz2<tgz<tar
  • 耗費時間(打包,解壓) 打包:tar.bz2>tgz>tar 解壓: tar.bz2>tar>tgz

從效率角度來說,當然是耗費時間越短越好

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