Linux下显示cp/mv进度的两种方式

2022-12-06 19:37:10 浏览数 (3)

Linux下显示cp/mv进度的两种方式

Linux下的命令高效简洁,但同时进度显示不是很友好,比如mv、cp、dd等命令。在没有进度显示的情况下,无法判断命令是正在执行还是卡住了,还是执行缓慢,progress,advcpmv等命令显示具体进度可以解决这个问题

一、方法1:使用progress命令

关于progress命令

代码语言:javascript复制
https://github.com/Xfennec/progress

(图片可点击放大查看)

CentOS7下可以直接如下地址下载rpm包

代码语言:javascript复制
https://cbs.centos.org/kojifiles/packages/progress/0.13/1.el7/x86_64/progress-0.13-1.el7.x86_64.rpm

安装步骤

代码语言:javascript复制
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

(图片可点击放大查看)

使用方式举例

代码语言:javascript复制
例如拷贝大文件时,再开一个终端窗口
cp CentOS-7-x86_64-DVD-2009.iso /home/

progress -M -w 或者watch -n1 progress -w

(图片可点击放大查看)

(图片可点击放大查看)

man progresss查看progress命令的用法

(图片可点击放大查看)

二、方法2:advcpmv

Github项目地址

代码语言:javascript复制
https://github.com/jarun/advcpmv

(图片可点击放大查看)

提前下载好github上的advcpmv-0.9-9.1.patch

需要先编译带进度条功能的mv和cp命令

具体步骤如下

代码语言:javascript复制
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用户下进行编译的话 先执行

代码语言:javascript复制
export FORCE_UNSAFE_CONFIGURE=1
./configure
make
  

(图片可点击放大查看)

(图片可点击放大查看)

编译完成后拷贝生成的cp/mv命令

代码语言:javascript复制
/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

(图片可点击放大查看)

显示进度条的具体用法

代码语言:javascript复制
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

(图片可点击放大查看)

(图片可点击放大查看)

0 人点赞