天天看点

tar命令压缩解压缩带进度条的实现

tar命令压缩解压缩带进度条的实现

需要用到pv命令,默认是已经安装的,如果没有安装参考以下命令

yum install pv    #centos

apt install pv    #ubuntu

brew install pv   #mac

# 解压缩

pv ${filename} | tar -zxf -

# 压缩

tar -cf - "${filename}" | pv -s $(($(du -sk "${filename}" | awk '{print $1}') * 1024)) | gzip > ${filename}.tar.gz

# 还可以在tar命令后加上以下选项用逗号代替进度 --checkpoint=100 --checkpoint-action=dot --totals

另外,手动控制的进度显示可以使用dialog命令,如

for i in {1..100} ;do echo $i;done |dialog --title "installation pro" --gauge "installation" 10 30