可以显示进度的cp命令(shell代码)
2016年2月27日
没有评论
首先将如下脚本放置在/usr/bin下,
要使用cp指令時,以大写CP指令,代替小写cp. (当然你可以自己修改脚本定制适合自己的命令)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/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" |