`

一个带进度条的cp 命今,但只能cp 一个文件, 文件很大时有效果

阅读更多

/root/cp.sh
#!/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 | 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" "
                i=$((i+1))
        done
        BAR=$BAR$NORMAIL
        echo -en "\r$BAR ${PERCENT}%"
        if ! isalive "$CPID"; then echo -en "\n"; exit; fi
        sleep 1
}
done

分享到:
评论

相关推荐

    linux cp mv 进度条补丁 advcpmv-master.zip

    然而,这些命令默认不提供进度条显示,这在处理大量数据或者大文件时,用户无法直观地了解到操作的进度,可能会感到不便。针对这一情况,社区开发了一些补丁来为`cp`和`mv`命令添加进度条功能,其中就包括了`advcpmv...

    Delphi 圆形进度条

    在 Delphi 开发环境中,有时候我们需要为用户界面增添一些独特的元素来提高用户体验,例如,一个圆形或环形的进度条可以很好地展示任务的执行进度,尤其是对于那些视觉效果要求较高的应用。本篇将深入探讨如何在 ...

    file_cp.rar_文件复制

    最后,一个良好的文件复制程序可能还具备一些高级特性,比如进度条显示、多线程复制以提高效率,或者支持文件的断点续传功能,使得在大文件复制过程中因网络中断或其他原因而暂停后,可以从上次中断的地方继续复制,...

    WinRAR3.8(单文件,不用安装,已注册版)

    6. 新的 -cp<配置名> 开关允许在命令行选择一个压缩配置。仅支持图形界面的inRAR.exe, rar.exe 不支持。 7. 压缩对话框包含新的 "选项" 页设置修改 "常规" 页的 "压缩后删除文件" 的行为: a) 删除文件。和以前版本的...

    vc++ 开发实例源码包

    操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等功能。 CHtmlViewProjV2 详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个...

    进度复制文件-易语言

    【标题】"进度复制文件-易语言"是一个关于在易语言环境下实现文件复制功能的程序,其中包含了进度显示,使得用户在大文件复制时能够了解当前的复制进度,提升用户体验。易语言是一种中国本土开发的编程语言,它以其...

    captive 模板,素材

    描述中的“Soft-Skills_Sample.cp”文件很可能是Captive软件的一个示例模板,专注于软技能的培训内容。 生成SWF文件是Captive模板的另一个关键特性。SWF(ShockWave Flash)是Adobe Flash的文件格式,广泛应用于...

    linux安装教程及基础知识学习

    Linux 有很多不同的发行版,每个版本都有自己的特点和优势。常见的发行版有 Ubuntu、CentOS、Debian、Fedora 等。对于初学者来说,Ubuntu 和 Fedora 是不错的选择,它们的界面友好,易于安装,并且拥有大量的在线...

    Virtualbox虚拟机安装Ubuntu图文教程(Vbox使用教程).doc

    接下来,创建一个新的虚拟机: 1. 启动Virtualbox,点击"新建"按钮,输入虚拟机的名称(例如"Ubuntu 20.04"),并选择操作系统类型为"Linux",版本为"Ubuntu 64位"(根据你要安装的Ubuntu版本选择相应的64位或32位...

    TMS component Pack 5.2.3.1

    安装过程通常涉及到下载cp5420_setup.exe这个执行文件,双击运行后,按照向导提示进行即可。安装过程中,用户可以选择需要的组件和设置安装路径,以满足个人或团队的具体需求。 使用TMS Component Pack 5.2.3.1,...

Global site tag (gtag.js) - Google Analytics