pbzip2安裝及使用
Debian/Ubuntu: 'apt-get update; apt-get install pbzip2' or get the Deb package
Linux版本:RedHat:
yum install pbzip2 -y
簡介
平時大檔案的壓縮喜歡使用bzip2,雖然bzip2的壓縮率很高,但是壓縮時長實在無法忍受,于是,通過強大的Google找到了pbzip2這款工具,pbzip2作為多線程版本的bzip2工具,壓縮比和bzip2基本相當,但是壓縮時間比bzip2減少了線程數倍數,畢竟bzip2是單線程工作,pbzip2是多線程工作。詳情請見:bzip2與pbzip2壓縮工具比較
pbzip2安裝
apt-get install pbzip2
pbzip2參數詳解
Usage: pbzip2 [-1 .. -9][-b#cdfhklm#p#qrS#tVz] <filename> <filename2> <filenameN>
-1…-9
設定BWT(一種壓縮技術算法)的block大小為100k...900k(預設為900k)
-b#
block大小,機關是100k(預設9=900k)
-c,--stdout
輸出到stdout
-d,--decompress
解壓檔案
-f,--force
覆寫已經存在的輸出檔案
-h,--help
輸出幫助資訊
-k,--keep
保留被壓縮的檔案(預設删除被壓縮檔案),這裡是個大坑,是以使用pbzip2壓縮時,切記一定要攜帶-k參數
-l,--loadavg
由load average(平均負載)決定使用CPU的最大數量
-m#
最大記憶體使用量,機關:1MB(預設 100=100MB)
-p#
指定CPU數,即線程數(預設自動檢測,檢測失敗後為2)
-q,--quiet
靜默模式
-r,--read
讀取整個檔案進入記憶體,并在各個CPU分開處理
-S# 子線程的stack(堆棧)大小,機關:1KB
-t,--test 完整的測試壓縮檔案
-v,--verbose 詳細資訊模式
-V,--version
輸出pbzip2的版本資訊
-z,--compress
壓縮檔案(預設值)
--ignore-trailing-garbage=# 是否忽略檔案末尾對齊資料塊(1忽略,0禁止)
pbzip2常用示例:
壓縮單個檔案(指定4個線程并行壓縮)提示:如果此處采用gzip壓縮的話,非常的消耗時間,而采用pbzip2壓縮,則比gzip壓縮快好多同時壓縮效率比gzip還要高。當時此時的pbzip2壓縮線程是非常的消耗伺服器的CPU的
壓縮提示錯誤,加上參數-f解決報錯:
[root@cacti tmp]# pbzip2 drnew0430.sql -z -p4 -f -k > drnew0430.sql.bz2
[root@cacti tmp]# du -sh 2017-12-21drnew0430.sql.gz drnew0430.sql.bz2 drnew0430.sql
1.1G 2017-12-21drnew0430.sql.gz
778M drnew0430.sql.bz2
5.0G drnew0430.sql
驗證pbzip2比gzip壓縮快好多同時壓縮效率比gzip還要高
解壓檔案(指定3個線程)
pbzip2 -d -p3 -k drnew0430.sql.bz2
壓縮目錄(指定3個線程)
tar -c test_dir/* | pbzip2 -c -p3 -f -k > test_dir.tar.bz2
解壓目錄(指定3個線程)
pbzip2 -d -p3 -k test_dir.tar.bz2
tar -xf test_dir.tar
pbzip2 -d -p3 -k test_dir.tar.bz2 && tar -xf test_dir.tar
pbzip2限制
由于pbzip2隻能壓縮檔案,不能對目錄進行壓縮,是以如果想使用pbzip2壓縮目錄,則需要借助tar工具。
參考資料:
<a href="https://github.com/wing324/helloworld_zh/blob/master/Linux/pbzip2%E5%AE%89%E8%A3%85%E5%8F%8A%E4%BD%BF%E7%94%A8.md">https://github.com/wing324/helloworld_zh/blob/master/Linux/pbzip2%E5%AE%89%E8%A3%85%E5%8F%8A%E4%BD%BF%E7%94%A8.md</a>
本文轉自 wjw555 51CTO部落格,原文連結:http://blog.51cto.com/wujianwei/2058162