cp命令顯示進度條 Linux cp 顯示進度

2021-10-13 09:30:54 字數 1721 閱讀 2998

#!/bin/bash

param_list=$*

param_num=$#

total_size=0

for((i = 0; i 

do[ ! -r $1 ] && echo "cannot read $1." && exit 1

size=`du -s $1 | awk ''`

((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

dolen_percent=$

for((i = 0; i <= len_percent; i++))

doecho -ne "\b"

done

copied=`du -s $target | awk ''`

((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"

首先將如下指令碼放置在/usr/bin下,

要使用cp指令時,以大寫cp指令,代替小寫cp. (當然你可以自己修改指令碼定製適合自己的命令)

指令碼內容:

#!/bin/bash

source=$1

target=$2

#cp=./fack_cp

cp=cp

$cp "$source" "$target" &

cpid=$!

isalive()

out=`ps -p $1 2> /dev/null`

return $?

while [ 1 ]; do

ssize=`/bin/ls -l $source | awk ""`

if [ -f $target ]; then

tsize=`/bin/ls -l $target | awk ""`

else

tsize="0"

fipercent=`echo "scale=2; $tsize/$ssize*100" | bc -l`

rate=`echo "scale=0; 63*$percent/100" | bc -l`

blue="\\033[3;44m"

normail="\\033[0;39m"

bar=$blue

i=0while [ $i -le 62 ]; do

[ $i = $rate ] && bar=$bar"\\033[7;39m"

bar=$bar" "

let i=$i+1

done

bar=$bar$normail

echo -en "\r$bar $%"

if ! isalive "$cpid"; then echo -en "\n"; exit; fi

sleep 1

done

tar 命令顯示進度條

實現該功能需要安裝 pv,然後把需要處理的資料通過管道傳給 pv,最後再進行操作。傳給 pv 的目的是為了知道已經處理的資料量大小,同時需要通過 s 指定總共需要處理的資料量大小。pv 的安裝一般的軟體管理工具都有提供 如 centos 下 yum install pv ubuntu apt get...

進度條顯示

最近的專案需求中涉及到了顯示進度的圖示,因此就簡單實現了一下,拿出來獻醜了 方法實現很簡單,主要是使用了framelayout的特殊性來實現的疊加顯示的 有次需求的同學們可以參考一下呦3 成功的 失敗的 進行中的 初始化 param attrs private void initview attri...

如何顯示進度條?

在許多程式中,程式需要自己做些事情而不受使用者輸入的干擾。這時就需要給使用者一些可見的顯示,以表明程式正在做一些事情及完成的進度。在wxpython中,這通常使用乙個進度條來管理,如圖9.5所示。圖9.5 例9.5顯示了產生圖9.5的 例9.5 生成乙個進度條 import wx if name m...