notrust 发表于 2013-1-23 19:41:16

请教用cp命令复制文件的脚本

一直用cp命令复制NAS里的文件,感觉很快。但是就是没有进度条。

在网上搜到了这个:
http://blog.163.com/lgh_2002/blog/static/44017526201142410617828/

照着做了之后,返回Permission Denied,整不明白了。

我是WVL的机器,请教高手如何制作这个脚本能让WVL远程拷贝出现进度条和完成百分比。谢了!

pt880 发表于 2013-1-23 19:51:07

你要给CP脚本添加权限啊
chmod 775   /usr/bin/CP

pt880 发表于 2013-1-23 20:02:35

本帖最后由 pt880 于 2013-2-3 22:23 编辑

我把它复制过来。

#!/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 "{print \\\$5}"`
    if [ -f $TARGET ]; then
      TSIZE=`/bin/ls -l $TARGET | awk "{print \\\$5}"`
    else
      TSIZE="0"
    fi
    PERCENT=`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=0
    while [ $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 ${PERCENT}%"
    if ! isalive "$CPID"; then echo -en "\n"; exit; fi
    sleep 1
}
done

notrust 发表于 2013-1-23 21:58:13

谢谢!按照你的方法授权,并将楼上内容复制到CP后,返回:

/usr/bin/CP: line 26: bc: command not found

后面还有一大串,请问是哪里有问题?

pt880 发表于 2013-2-3 22:55:18

本帖最后由 pt880 于 2013-2-3 22:55 编辑

notrust 发表于 2013-1-23 21:58 static/image/common/back.gif
谢谢!按照你的方法授权,并将楼上内容复制到CP后,返回:

/usr/bin/CP: line 26: bc: command not found


你机器里面没有bc命令。安装一下bc吧。我就是这样解决的。ipkg install bc

鸟语王 发表于 2013-8-20 22:33:25

pt880 发表于 2013-2-3 22:55
你机器里面没有bc命令。安装一下bc吧。我就是这样解决的。

按照上面方法,wvl都已经完全可以复制文件了,但是复制时候下面的进度条永远都是不动了,表示0%,过一会文件可以完全复制过去,依然是0%什么原因呢?
页: [1]
查看完整版本: 请教用cp命令复制文件的脚本