Linux最常用的压缩程序是bzip2,但是bizp2可以算是上古程序了,不支持多核。现在PC一般都是双核四核了。建议使用pbzip2替代bzip2,以下实验数据为证。
- pbzip2 压缩耗时 2m37.668s = 157.668s
- bzip2 压缩耗时 19m43.013s = 1183.013s
这还要说什么?在16核的情况下压缩同一份4G随机数据,竟然时间相差7倍多。当然使用pbzip2啦!
下面我们来介绍一下pbzip2的常用命令:
常用的选项有
- -d 用于解压缩
- -k 用于保留源文件
压缩:
# pbzip2 -k file1 file2 fileN
解压缩:
# pbzip2 -dk file1 file2 fileN
在tar中调用压缩:
# tar cf myfile.tar.bz2 -I pbzip2 file1 fileN dir_to_compress/
在tar中调用解压缩:
# tar -xf eclipse.tar.bz2 -I pbzip2
Note:
- Linux中所有东西都是文件,所以以上文件也可以是目录。
- 默认压缩后,是删除源文件的,如果要保留源文件使用-k选项
- -I(大写的”i”)是--use-compress-prog(指定调用压缩程序)简略写法,但是我也没看出来为什么用I ..
- 解压缩时,不能写成tar -xf -I pbzip2 eclipse.tar.bz2,这样会把-I当做文件名。-f后面一定要跟文件名。
下面实际执行一次:
压缩数据:
解压缩:
使用tar打包压缩:
使用tar批量解压:
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禁止)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。