设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
怎么让cp显示拷贝的进度或者速度?
1
2
/ 2 页
返回列表
楼主:
gybcb
怎么让cp显示拷贝的进度或者速度?
[复制链接]
gybcb
gybcb
当前离线
积分
49
IP卡
狗仔卡
楼主
|
发表于 2003-7-4 10:22:35
|
显示全部楼层
我的需求就是要拷贝一个大文件的时候,显示进度!
因为我经常在网上拷贝比较大的单个文件,1G-2G这会比较慢,所以我需要一个进度条来显示拷贝文件的进度。
to penny:
我上这儿来问这个问题是,我觉得cp因该已经提供这个功能了,我只是不知道这个参数而已。
源码收到了,晚上看一下代码。
多谢!
to javalee:
多谢斑竹的热心帮助!Thanks!
回复
支持
反对
使用道具
举报
显身卡
gybcb
gybcb
当前离线
积分
49
IP卡
狗仔卡
楼主
|
发表于 2003-7-4 10:34:14
|
显示全部楼层
penny
★☆
注册日期: Oct 2002
来 自: .:ET8.NET:.------???
发贴数量: 539
penny兄,我想问一下你现在在哪个城市啊?
回复
支持
反对
使用道具
举报
显身卡
idkey
idkey
当前离线
积分
366
IP卡
狗仔卡
发表于 2003-7-4 14:19:59
|
显示全部楼层
不需要修改cp代码,可以检测 dest-file 的大小,和 source-file 对比就可以知道进度了。
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-7-4 21:51:53
|
显示全部楼层
这个问题我认为值得讨论!
我有个提议,咱们也立个项,大家都动动脑筋,写一个在拷贝过程中显示进度的脚本,如何?
欢迎参与~~~~~~~~~~~~~;)
回复
支持
反对
使用道具
举报
显身卡
idkey
idkey
当前离线
积分
366
IP卡
狗仔卡
发表于 2003-7-5 00:12:53
|
显示全部楼层
#!/bin/sh
# Last modified: 2003年07月05日 星期六 00时09分44秒 [test]
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 | gawk "{print \\\$5}"`
if [ -f $TARGET ]; then
TSIZE=`/bin/ls -l $TARGET | gawk "{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
复制代码
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-7-5 00:50:15
|
显示全部楼层
晕~~~~~那么快!
佩服!!!
收藏,好好研读研读!把他移植到xdialog下试试看;)
回复
支持
反对
使用道具
举报
显身卡
lordbyorn
lordbyorn
当前离线
积分
889
IP卡
狗仔卡
发表于 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
}
回复
支持
反对
使用道具
举报
显身卡
gybcb
gybcb
当前离线
积分
49
IP卡
狗仔卡
楼主
|
发表于 2003-7-8 17:43:40
|
显示全部楼层
to idkey
Thanks!
回复
支持
反对
使用道具
举报
显身卡
wangfaming1221
wangfaming1221
当前离线
积分
132
IP卡
狗仔卡
发表于 2003-7-8 18:25:45
|
显示全部楼层
i love u
我正愁干什么?现在
能给我提点意见吗?我该如何入门写脚本???看了兄弟们的贴子,水中看花(人在水中,眼很难受)!
谢谢,首先
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-7-9 00:02:58
|
显示全部楼层
兄弟别急,脚本,是根据自己的需要而编写的,而不是为了什么!
编写脚本的初衷是为了完成某些任务或者简化某些过程以提高工作效率!当然,简单的任务可以在命令行下就可以完成,这就是shell!!!
建议兄弟先看看置顶入门的贴子和精华区里的贴子吧~~~
回复
支持
反对
使用道具
举报
显身卡
1
2
/ 2 页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Gentoo Linux
服务器架设、应用、维护
Javascript文档
PHP
Linux 专业英文精品技术文档专题
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表