xz的压缩效率高于bzip2,bzip2高于gzip。
创建tar.xz大致有两种方法,第一是tar命令,第二是先tar再xz。
第一种简单快捷,第二种命令稍微复杂,但可以使用多线程。
为了比较两种的耗时,测试了三种脚本命令,分别是
#1: tar only
XZ_OPT="-9" tar -cJf $1".tar.xz" $1 2> /dev/null
#2: tar with xz threads
XZ_OPT="-9T 8" tar -cJf $1".tar.xz" $1 2> /dev/null
#3: tar before xz with threads
tar cf - $1 2> /dev/null | xz -9T 8 - > $1".tar.xz"
原始文件大小:216506408
#1方法大小:214508876,耗时:106s
#2方法大小:214508620,耗时:96s
#3方法大小:214508620,耗时:95s
大致结论就是
- 多线程xz压缩会影响压缩后文件大小。
- 多线程条件下压缩tar.xz最好在tar命令之前将XZ_OPT的-T设置为线程数,或者使用先tar打包再多线程xz压缩。
参考
compression - Create a tar.xz in one command - Stack Overflow
How to XZ a directory with TAR using maximum compression? - Unix & Linux Stack Exchange