Linux下显示cp/mv进度的两种方式
Linux下的命令高效简洁,但同时进度显示不是很友好,比如mv、cp、dd等命令。在没有进度显示的情况下,无法判断命令是正在执行还是卡住了,还是执行缓慢,progress,advcpmv等命令显示具体进度可以解决这个问题
一、方法1:使用progress命令
关于progress命令
https://github.com/Xfennec/progress
CentOS7下可以直接如下地址下载rpm包
https://cbs.centos.org/kojifiles/packages/progress/0.13/1.el7/x86_64/progress-0.13-1.el7.x86_64.rpm
安装步骤
wget --no-check-certificate https://cbs.centos.org/kojifiles/packages/progress/0.13/1.el7/x86_64/progress-0.13-1.el7.x86_64.rpm rpm -ivh progress-0.13-1.el7.x86_64.rpm
使用方式举例
例如拷贝大文件时,再开一个终端窗口 cp CentOS-7-x86_64-DVD-2009.iso /home/ progress -M -w 或者watch -n1 progress -w
man progresss查看progress命令的用法
二、方法2:advcpmv
Github项目地址
https://github.com/jarun/advcpmv
提前下载好github上的advcpmv-0.9-9.1.patch
需要先编译带进度条功能的mv和cp命令
具体步骤如下
wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.1.tar.xz tar -xJf coreutils-9.1.tar.xz cd coreutils-9.1 上传advcpmv-0.9-9.1.patch文件 patch -p1 -i advcpmv-0.9-9.1.patch
接下来编译 如果用root用户下进行编译的话 先执行
export FORCE_UNSAFE_CONFIGURE=1 ./configure make
编译完成后拷贝生成的cp/mv命令
/home/coreutils-9.1/src cp /home/coreutils-9.1/src/cp /usr/local/bin/cpg cp /home/coreutils-9.1/src/mv /usr/local/bin/mvg
显示进度条的具体用法
mvg -g cpg -g #示例 mvg -g /home/CentOS-7-x86_64-DVD-2009.iso /opt cpg -g /home/CentOS-7-x86_64-DVD-2009.iso /opt