LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: gybcb

怎么让cp显示拷贝的进度或者速度?

[复制链接]
 楼主| 发表于 2003-7-4 10:22:35 | 显示全部楼层
我的需求就是要拷贝一个大文件的时候,显示进度!
因为我经常在网上拷贝比较大的单个文件,1G-2G这会比较慢,所以我需要一个进度条来显示拷贝文件的进度。
to penny:
我上这儿来问这个问题是,我觉得cp因该已经提供这个功能了,我只是不知道这个参数而已。
源码收到了,晚上看一下代码。
多谢!
to javalee:
多谢斑竹的热心帮助!Thanks!
 楼主| 发表于 2003-7-4 10:34:14 | 显示全部楼层
penny
★☆

注册日期: Oct 2002
来  自: .:ET8.NET:.------???
发贴数量: 539

penny兄,我想问一下你现在在哪个城市啊?
发表于 2003-7-4 14:19:59 | 显示全部楼层
不需要修改cp代码,可以检测 dest-file 的大小,和 source-file 对比就可以知道进度了。
发表于 2003-7-4 21:51:53 | 显示全部楼层
这个问题我认为值得讨论!
我有个提议,咱们也立个项,大家都动动脑筋,写一个在拷贝过程中显示进度的脚本,如何?
欢迎参与~~~~~~~~~~~~~;)
发表于 2003-7-5 00:12:53 | 显示全部楼层
  1. #!/bin/sh
  2. # Last modified: 2003年07月05日 星期六 00时09分44秒 [test]

  3. SOURCE=$1
  4. TARGET=$2

  5. #CP=./fack_cp
  6. CP=cp

  7. $CP "$SOURCE" "$TARGET" &
  8. CPID=$!

  9. isalive(){
  10.         out=`ps -p $1 2> /dev/null`
  11.         return $?
  12. }

  13. while [ 1 ]; do {
  14.         SSIZE=`/bin/ls -l $SOURCE | gawk "{print \\\$5}"`
  15.         if [ -f $TARGET ]; then
  16.                 TSIZE=`/bin/ls -l $TARGET | gawk "{print \\\$5}"`
  17.         else
  18.                 TSIZE="0"
  19.         fi
  20.         PERCENT=`echo "scale=2; $TSIZE/$SSIZE*100" | bc -l`
  21.         RATE=`echo "scale=0; 63*$PERCENT/100" | bc -l`
  22.         BLUE="\\033[3;44m"
  23.         NORMAIL="\\033[0;39m"

  24.         BAR=$BLUE
  25.         i=0
  26.         while [ $i -le 62 ]; do
  27.                 [ $i = $RATE ] && BAR=$BAR"\\033[7;39m"
  28.                 BAR=$BAR" "
  29.                 let i=$i+1
  30.         done
  31.         BAR=$BAR$NORMAIL
  32.         echo -en "\r$BAR ${PERCENT}%"
  33.         if ! isalive "$CPID"; then echo -en "\n"; exit; fi
  34.         sleep 1
  35. }
  36. done
复制代码
发表于 2003-7-5 00:50:15 | 显示全部楼层
晕~~~~~那么快!佩服!!!
收藏,好好研读研读!把他移植到xdialog下试试看;)
发表于 2003-7-5 01:58:54 | 显示全部楼层
我给个算多文件大小的函数。

csize(){
C=0
INRC=0
for file in $1
do
INRC=`ls -l $file | awk "{print \\\$5}"`
let C=$C+$INRC
done

return $C
}
 楼主| 发表于 2003-7-8 17:43:40 | 显示全部楼层
to idkey
Thanks!
发表于 2003-7-8 18:25:45 | 显示全部楼层

i love u

我正愁干什么?现在
能给我提点意见吗?我该如何入门写脚本???看了兄弟们的贴子,水中看花(人在水中,眼很难受)!
谢谢,首先
发表于 2003-7-9 00:02:58 | 显示全部楼层
兄弟别急,脚本,是根据自己的需要而编写的,而不是为了什么!
编写脚本的初衷是为了完成某些任务或者简化某些过程以提高工作效率!当然,简单的任务可以在命令行下就可以完成,这就是shell!!!
建议兄弟先看看置顶入门的贴子和精华区里的贴子吧~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表