设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
关于拷贝时显示进度条的问题
返回列表
查看:
1641
|
回复:
5
关于拷贝时显示进度条的问题
[复制链接]
xdw_jack
xdw_jack
当前离线
积分
112
IP卡
狗仔卡
发表于 2003-9-9 15:18:21
|
显示全部楼层
|
阅读模式
以前有个贴子讨论,后来我自己也用dialog作了一个进度条拷贝程序。
但是,遇到一个问题:在从硬盘向软盘拷贝的过程中,进度条一下就到顶了,但拷贝工作才刚刚开始。
测试向软盘拷贝文件,发现刚一执行拷贝文件,du 出来的结果就是文件本身大小。应该是文件已被全写入缓存之中,但还要花很长时间刷到软盘里。
请问,怎样让进度条拷贝程序在向软盘拷贝时也正常工作?能不能先把一个文件拆成等大小的几块,一块块拷过去,再合并起来?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-9-9 17:59:19
|
显示全部楼层
这里的讨论你再看看吧~~
http://www.linuxsir.cn/bbs/showthread.php?threadid=49972
回复
支持
反对
使用道具
举报
显身卡
xdw_jack
xdw_jack
当前离线
积分
112
IP卡
狗仔卡
楼主
|
发表于 2003-9-10 09:16:22
|
显示全部楼层
早看过了阿
没找到解决方法。
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-9-10 14:38:09
|
显示全部楼层
如果你原意的话,把你的脚本代码帖出来,让兄弟们看一看问题出在何处?,OK? ;)
回复
支持
反对
使用道具
举报
显身卡
idkey
idkey
当前离线
积分
366
IP卡
狗仔卡
发表于 2003-9-10 16:22:48
|
显示全部楼层
这问题恐怕不是 cp 的问题,而是操作系统的虚拟文件系统对设备读写进行了缓冲。这是现代操作系统大多采用的方法,所以写入一个几百K的文件到软盘经常都是瞬间完成:其实这时只是在内存中完成了写入,等到 page out 时才会真正写入软盘(可以用 sync 指令强制系统进行页出操作)。所以 *nix 的教科书里总是提醒大家要先 umount 软驱等设备然后再取出软盘。
要想真正检测文件拷贝进度,得绕过虚拟文件系统的缓冲,采用“直接写入”的方式拷贝文件:不过抱歉,我不知道应该用什么命令(印象中有一个支持直写模式的命令,忘了是什么了)。当然,采用 direct write 会使文件系统的 IO 效率下降,而 IO 效率也正是 unix 中增加这层缓冲的原因之一。
回复
支持
反对
使用道具
举报
显身卡
xdw_jack
xdw_jack
当前离线
积分
112
IP卡
狗仔卡
楼主
|
发表于 2003-9-10 17:19:02
|
显示全部楼层
我也知道是缓存的问题
如果这样,拷贝多个文件也应该是同样效果。
如果我直接做一个1440M的文件,做成FAT或EXT2文件格式,以loop方式挂上,把文件全部拷到这个文件里,然后用dd if=filename of=/dev/fd0 bs=1k count=1440,这样缓存是否仍会起作用呢?
回头试试。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Linux 程序设计专题讨论
Slackware Linux
内核与驱动开发
Debian Linux
Linux 输入开发与研究
网络技术\网络安全讨论
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表