shell脚本实现拷贝大文件显示百分比的代码分享

#!/bin/sh

strace -q -eread cp -- "${1}" "${2}" 2>&1 \
| awk ‘{
    count += $NF
    if (count % 10 == 0) {
        percent = count / total_size * 100
        for (i=0;i<=percent;i++)
            printf("=");
        printf(">");
        printf ("%2.0f%%\r", percent);
    }
}
END { print "" }‘ total_size=$(stat -c ‘%s‘ "${1}") count=0

时间: 2024-08-05 22:00:13

shell脚本实现拷贝大文件显示百分比的代码分享的相关文章

虚拟机拷贝大文件存在的问题

目录 虚拟机拷贝大文件存在的问题 问题一:虚拟机扩容 问题二: 反复拷贝大文件导致Ubuntu空间不足 2.1 派生问题:隐藏文件显示与删除 2.2 派生问题:给根目录的文件权限 参考 虚拟机拷贝大文件存在的问题 问题一:虚拟机扩容 1.VMware 编辑虚拟机设置 2.下载Gparted分区工具 sudo apt-get install gparted # 下载后打开 sudo gparted 3.删除与unallocated隔着的所有文件,其中有些文件加锁,将linux-swap分区先swa

linux shell 脚本获取和替换文件中特定内容

1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) 1 timeout 1 2 default 0 3 4 title live 5 find --set-root /casper/vmlinuz 6 kernel /casper/vmlinuz boot=casper ignore_uuid showmounts ip=eth0,10.0.66.66,255.255.240.0,10.0.64.3 7

C#分块拷贝大文件

//定义源文件和目标文件,绝对路径 public static string source = @"E:\C#\C#编程语言详解.pdf"; //2014-6-10 Training //拷贝大文件,分块拷贝 AddBigFile(source); /// <summary> /// 拷贝大文件 /// </summary> /// <param name="source">原绝对路径</param> private

如何使用shell脚本快速排序和去重文件数据

前面写过一篇通过shell脚本去重10G数据的文章,见<用几条shell命令快速去重10G数据>.然而今天又碰到另外一个业务,业务复杂度比上次的单纯去重要复杂很多.找了很久没有找到相应的办法,于是用shell脚本程序去处理.具体业务逻辑: 1.首先根据给定指定进行排序 2.排序后对给定字段进行去重,去重的规则如下: a)排序后如果相邻N行给定字段值相同的行数不超过两行,则两行都保留. a)排序后如果相邻N行给定字段值相同的行数超过两行,则保留首行和尾行. 就这样一个业务逻辑,其实看起来并不是太

AIX 用SHELL脚本 自动FTP下载文件

用SHELL脚本 自动FTP下载文件:kaiboss1:/weblogic/bboss> uname -xAIX kaiboss1 3315381580 3 5 00C59CB54C00kaiboss1:/weblogic/bboss> more ./memberupload/memberupload.shcd /weblogic/bboss/memberupload/fileftp -inv 10.1.140.123 <<!>memberfile.loguser ftp31

ubuntu 用shell脚本实现将当前文件夹下全部文件夹中的某一类文件复制到同一文件夹下

当前文件夹下有一些文件和文件夹,当中每一个文件夹里都有若干.txt文件. 如今要求在当前文件夹创建一个新文件夹all,且将那些文件夹全部.txt文件 都复制到文件夹all.在ubuntu12.04的shell脚本实现例如以下: #!/bin/sh # 提示信息 echo "start:" # 定义变量 dst=all pst=.txt # 拷贝文件到目标目录 if [ -d ${dst} ] then echo "${dst} existed" else echo

shell脚本实现自动生成文件并更改其权限

在学习shell的时候,会不断的创建新文件,然后在新文件中的编写shell脚本学习.于是就有如下几个步骤: 1. 使用touch命令新建shell脚本 2. 编写shell脚本 3. 使用chmod更加shell脚本权限,使其具有可执行权限,然后执行 当多写几个脚本后,就发现这个过程很繁琐,而且新建的shell脚本是以数字升序进行创建的.为什么不写一个脚本来实现上述三个过程了.于是就开始了,结果花了好长一段时间才弄出来,真实惭愧,还是对shell不熟悉了. 先说说实现的思路: 1. 先得到目录下

shell脚本0——一切皆文件与管道

管道:grep foo /path/to/file | grep -n -k 3 | more 实际过程与我们直观认为的相反,最好通过实际过程理解.首先运行的是more,它的输入被连接至一个管道.然后是sort,并且其输出被连接至之前的那个管道.接着创建第二个管道,并且将sort的stdin连接至该管道.最后执行grep,将其stdout连接至与sort进程相连的那个管道. 当grep开始运行并输出数据时,数据顺着管道流向sort,sort处理后顺着管道输出到more,由more对管道输出的全部

shell脚本切割tomcat日志文件

转自:http://www.cnblogs.com/lishun1005/p/6054816.html 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #!/bin/sh log_dir=/var/log/tomcat monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路