1. 程式人生 > >linux下的檔案壓縮方式比較

linux下的檔案壓縮方式比較

        本文主要討論linux下常見的各種檔案解壓縮方式,同時比較各類壓縮方式的壓縮率和壓縮時間。

        一、我們來說說常見的壓縮檔案格式:

                .tar          tar 程式打包的資料,並沒有壓縮過;

                .gz          gzip 程式壓縮的檔案;

                .tar.gz     tar 程式打包的檔案,其中並且經過 gzip 的壓縮

                .bz2        bzip2 程式壓縮的檔案;

                .tar.bz2   tar 程式打包的檔案,其中並且經過 bzip2 的壓縮

                .Z            unix 檔案壓縮

                .zip         zip 程式壓縮打包的檔案; 

                .rar         rar 程式壓縮打包的檔案;

                .xz           xz 程式壓縮的檔案;

                .tar.xz     tar 程式打包的檔案,其中並且經過 xz 的壓縮 

                .7z          7zip 程式壓縮打包的檔案。

        二、常見解壓縮命令:

               1、.tar

                 解包:tar xvf FileName.tar    

                 打包:tar cvf FileName.tar FileName

               2、.gz

                解壓:gunzip FileName.gz

                壓縮:gzip FileName(注:gzip 不能壓縮目錄只能壓縮檔案)

              3、.tar.gz

                解壓:tar zxvf FileName.tar.gz

                壓縮:tar zcvf FileName.tar.gz FileName

             4、.bz2

               解壓:bzip2 -d FileName.bz2

               壓縮:bzip2 -z FileName.tar.bz2

              5、.Z

               解壓:uncompress FileName.Z

               壓縮:compress FileName.Z

              6、.tgz

               解壓:tar zxvf FileName.tar.tgz

               壓縮:tar zcvf FileName.tar.tgz FileName

              7、.zip

               解壓:unzip FileName.zip

               壓縮:zip FileName.zip FileName

              8、.rar

               解壓:rar e FileName.rar    

               壓縮:rar a FileName.rar

              9、tar.xz 

               解壓:  tar xvjf FileName.tar.xz

               壓縮:   tar cvf FileName.tar FileName; xz -zFileName.tar

              10、7z

               解壓: 7z x FileName.7z

               壓縮: 7z a FileName.7z FileName

        三、壓縮率和壓縮時間比較:

[email protected]:~$ du -s FileName/
6360000 FileName/
[email protected]:~$ time tar zcf FileName.tar.gz FileName
real    5m20.915s
user    5m26.926s
sys     0m8.307s
[email protected]:~$ time tar zcf FileName.tar.tgz FileName
real    5m21.044s
user    5m27.203s
sys     0m8.101s
[email protected]:~$ time tar -jcf FileName.tar.bz2 FileName
real    12m12.725s
user    12m13.087s
sys     0m9.891s
[email protected]:~$ time zip -r FileName.zip FileName
real    6m44.007s
user    6m33.764s
sys     0m8.367s
[email protected]:~$ time rar a FileName.rar
real    4m41.960s
user    20m7.899s
sys     1m13.742s
[email protected]:~$ time 7z a FileName.7z FileName
real    2m16.730s
user    55m33.900s
sys     0m19.131s
[email protected]:~$ du -sh FileName*
6.1G    FileName
1.6G    FileName.7z
2.4G    FileName.rar
5.9G    FileName.tar
1.9G    FileName.tar.bz2
2.2G    FileName.tar.gz
2.2G    FileName.tar.tgz
2.8G    FileName.zip

              從以上資料可以明顯的看出,壓縮率: 7z > bz2 > gz > rar > zip,壓縮時間:  7z < rar < gz < zip < bz2,綜合來看,7z表現最好,但linux下使用的不是太多,而bz2雖然壓縮率高但時間長,gz屬於折中的考慮。