LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 12674|回复: 19

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

[复制链接]
发表于 2003-7-3 11:20:39 | 显示全部楼层 |阅读模式
怎么让cp显示拷贝的进度或者速度?
发表于 2003-7-3 11:53:58 | 显示全部楼层
这个需要写一个进度条的脚本,脚本区里有如何写进度条的例子,你看看!
http://www.linuxsir.cn/bbs/showthread.php?threadid=29701
 楼主| 发表于 2003-7-3 12:41:22 | 显示全部楼层
那个脚本只是画一个进度条而已!
我怎么知道文件实际拷贝了多少呢?
发表于 2003-7-3 13:01:45 | 显示全部楼层
,
思路应该是这样的吧~
首先计算要拷贝的文件的整个块的大小,然后按照百分比例分成n个小块,把这个n的数量交给类似dialog的程序处理,
(我也没有实现呢!望探讨)
 楼主| 发表于 2003-7-3 13:16:48 | 显示全部楼层
如果用c/c++或者别的语言写得话的确是这样。
关键现在怎么样可以重用cp呢?
或者说cp也可以把一个文件分成几块分别拷贝?
(请指教)
发表于 2003-7-3 14:33:23 | 显示全部楼层
重写cp吧
好歹人家源程序都给你了。。
 楼主| 发表于 2003-7-3 14:44:02 | 显示全部楼层
我也这么想过!
不过....
(说来惭愧我没找到源码包)
发表于 2003-7-3 15:29:52 | 显示全部楼层
重写cp吧
好歹人家源程序都给你了。。
我个人看没那个必要吧!;)像dialog/Xdialog等工具都可以做到的(比如作些安装程序等)!但是为了显示一个进度条而改写cp,是不是舍简求繁了呢?!
 楼主| 发表于 2003-7-3 16:46:38 | 显示全部楼层
to javalee:
那怎么样可以取得当前拷贝的一些消息呢?
cp有没有什么可以设置回调函数的方法,或类似的方法呢?
:)
发表于 2003-7-3 18:05:20 | 显示全部楼层
最初由 javalee 发表
我个人看没那个必要吧!;)像dialog/Xdialog等工具都可以做到的(比如作些安装程序等)!但是为了显示一个进度条而改写cp,是不是舍简求繁了呢?!


这个问题是这样,如果文件不多,而且不考虑目录深度,当然可以用dialog
但是,如果是一个通用解决方案,假设我要把一个带上万文件的复杂目录cp到另外一处,这样的方法肯定是毫无效率的, 或者是,只有一个大文件,希望在复制中实时显示进度,这些都是dialog无法实现的。。

btw,cp的源码在
http://www.gnu.org/software/fileutils/fileutils.html

我只能说,如果楼主真有这样的需求,那就自己重写一个cp,显示每个文件的具体复制进度,这个很简单的。如果只是为了学习shell,大可以放弃这个想法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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