cp显示拷贝进度

一段比较好的显示拷贝进度的shell代码

#!/bin/bash

PARAM_LIST=$*
PARAM_NUM=$#
TOTAL_SIZE=0
for((i = 0; i < PARAM_NUM - 1; i++))
do
        [ ! -r $1 ] && echo "Cannot read $1." && exit 1
        SIZE=`du -s $1 | awk '{print $1}'`
        ((TOTAL_SIZE = TOTAL_SIZE + SIZE))
        shift
done
TARGET=$1
START_TIME=`date +%s.%N`
cp -a $PARAM_LIST &
echo -ne "Total size: $TOTAL_SIZE KB - %"
while true
do
        LEN_PERCENT=${#PERCENT}
        for((i = 0; i <= LEN_PERCENT; i++))
        do
                echo -ne "/b"
        done
        COPIED=`du -s $TARGET | awk '{print $1}'`
        ((PERCENT = COPIED * 100 / TOTAL_SIZE))
        echo -ne "$PERCENT%"
        ((PERCENT == 100)) && END_TIME=`date +%s.%N` && break
done
MB_SECOND=`echo $TOTAL_SIZE/1024//($END_TIME-$START_TIME/)|bc`
echo " - SPEED: $MB_SECOND MB/s"


shell实现的是否会影响效率?可以考虑修改cp源码。
源码位置在:http://www.gnu.org/software/coreutils/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值