pbzip2 可以提高空间/时间利用率。甚至还有集群版 (cluster) MPIBZIP2 。
安装步骤:
- 下载最新版的源代码 http://compression.ca/pbzip2/
- tar zxvf pbzip2-x.x.x.tar.gz
- 进入解压后目录执行 make
- 编译完成后目录里会生成 pbzip2 可执行文件
常用的选项有
- -d 用于解压缩
- -k 用于保留源文件
- -p 用于指定多个cpu
压缩:
# pbzip2 -k file1 file2 fileN
解压缩:
# pbzip2 -dk file1 file2 fileN
在tar中调用压缩:
# tar c file1 file2 file3 ... | ~/pbz2/pbzip2-1.0.5/pbzip2 -p4 -cv > xxxxx.tar.bz2
tar c test_parallel.dmp | pbzip2 -p8 -cv > test.tar.bz2
在tar中调用解压缩:
# ~/pbzip2/pbzip2-1.0.5/pbzip2 -cd xxxxx.tar.bz2 | tar xvpbzip2 -cd test.tar.bz2 | tar xv
Note:
- Linux中所有东西都是文件,所以以上文件也可以是目录。
- 默认压缩后,是删除源文件的,如果要保留源文件使用-k选项
- -I(大写的”i”)是--use-compress-prog(指定调用压缩程序)简略写法
- 解压缩时,不能写成tar -xf -I pbzip2 eclipse.tar.bz2,这样会把-I当做文件名。-f后面一定要跟文件名。
pbzip2选项详解:
- -b#, 块大小,#表示数字,单位是100k(默认900k)
- -c, 输出到stdout
- -d, 解压
- -f, 覆盖已存在的输出文件
- -h, 输出帮助
- -k, 保留输入文件
- -l, 最大可用处理器数量
- -m#, 最大可用内存,单位MB,默认100MB
- -p#, 处理器数量,默认自动检测,检测失败设置为2
- -q, 安静模式,不输出处理信息
- -r, 读取整个输入文件到内存,在各处理器间分开处理
- -S#, 子线程栈大小
- -t, 测试压缩文件的完整性
- -v, 输出详细信息
- -V, 输出pbzip2版本信息
- -z, 压缩(默认启用)
- -1, 设置BWT预处理块大小,单位100k,1压缩速度最快,但是压缩率最低。默认900k
- --ignore-trailing-garbage=#, 是否忽略文件末尾对齐数据块(1忽略,0禁止)