版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Linux之压缩工具
1.常用压缩工具介绍
tar.xz
tar.gz
tar.bz2
lz4
lzop
压缩选项:
-a, --auto-compress 使用归档后缀名来决定压缩程序
-I, --use-compress-program=PROG
通过 PROG 过滤(必须是能接受 -d
选项的程序)
-j, --bzip2 通过 bzip2 过滤归档
-J, --xz 通过 xz 过滤归档
--lzip 通过 lzip 过滤归档
--lzma 通过 lzma 过滤归档
--lzop
--no-auto-compress 不使用归档后缀名来决定压缩程序
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
-Z, --compress, --uncompress 通过 compress 过滤归档
压缩命令
.tar.gz 格式压缩为 tar -zcf xx.tar.gz
.tar.bz2 格式压缩为 tar -jcf xx.tar.bz2
.tar.xz 格式压缩为 tar -Jcf xx.tar.xz
.xz 格式压缩为 lz4 xx.lz4
.lzo 格式压缩为 lzop xx.lzo
解压缩命令
.tar.gz 格式解压为 tar -zxf xx.tar.gz
.tar.bz2 格式解压为 tar -xjf xx.tar.bz2
.tar.xz 格式解压为 tar -xjf xx.tar.bz2
.xz 格式解压为 lz4 -d xx.lz4
.lzo 格式解压为 lzop -d xx.lzo
2.测试脚本
示例1:
[root@docker1 opt]# cat bzip2.sh
#命令执行开始时间
start_time=`date +"%Y-%m-%d %H:%M:%S"`
start_time_unix=`date +%s`
#命令执行
tar -jcf test4.tar.bz2 test4
#命令执行结束时间
end_time=`date +"%Y-%m-%d %H:%M:%S"`
end_time_unix=`date +%s`
cha=`expr ${end_time_unix} - ${start_time_unix}`
re=`expr ${cha} / 60`
sre=`expr ${cha} % 60`
#命令耗时时间
echo `du -sh test4.tar.bz2 | awk '{print $1}'` >> time.txt
echo "bzip2压缩命令执行总耗时:${re}分钟 ${sre}秒" >> time.txt
3.压缩率和压缩时间比较
2.1 第一次测试
dd if=/dev/zero of=test bs=1M count=1000
4.0K
bzip2压缩命令执行总耗时:0分钟 14秒
996K
gzip压缩命令执行总耗时:0分钟 10秒
4.0M
lz4压缩命令执行总耗时:0分钟 8秒
4.6M
lzop压缩命令执行总耗时:0分钟 8秒
152K
xz压缩命令执行总耗时:0分钟 22秒
压缩率: tar.bz2>tar.xz>tar.gz>lz4>lzop
压缩时间:lz4=lzop<tar.gz<tar.bz2<tar.xz
综上所述:
2.2 第二次测试(文件大小为5G)
dd if=/dev/zero of=test bs=1M count=5000
[root@docker1 opt]# cat time.txt
4.9M
gzip压缩命令执行总耗时:0分钟 47秒
20M
lz4压缩命令执行总耗时:0分钟 40秒
748K
xz压缩命令执行总耗时:1分钟 48秒
4.0K
bzip2压缩命令执行总耗时:1分钟 1秒
23M
lzop压缩命令执行总耗时:0分钟 41秒
压缩率: tar.bz2>tar.xz>tar.gz>lz4>lzop
压缩时间:lz4<lzop<tar.gz<tar.bz2<tar.xz
总结,经过测试,bzip2和xz均是不错的压缩工具选择!!!