1、前言
实现原理:
重新安装cp、mv命令,显示进度条
测试环境:Centos7.6
查看当前系统下的coreutils工具包的版本
rpm -qa | grep -w coreutils
当前版本8.22
2、下载coreutils安装包
不需要太新,8.32即可
wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
3、下载补丁包
利用GitHub的开源项目advcpmv来实现cp与mv的进度条
http://github.com/jarun/advcpmv
下载版本:advcpmv-0.8-8.32.需要与coreutils安装的版本要保持一致
下载补丁包:
wget https://github.com/jarun/advcpmv/archive/refs/heads/master.zip
4、安装coreutils软件包和补丁包
先安装依赖包:
yum install gcc gcc-c++ unzip patch
解压软件包:
tar -Jxf coreutils-8.32.tar.xz
unzip master.zip
拷贝补丁包:
将补丁包拷贝到coreutils的安装目录下:
cp advcpmv-master/advcpmv-0.8-8.32.patch coreutils-8.32/
安装coreutils:
使用patch命令加载补丁包
cd coreutils-8.32
patch -p1 -i advcpmv-0.8-8.32.patch
安装coreutils软件包:
./configure FORCE_UNSAFE_CONFIGURE=1
make
5、替换原cp和mv命令
替换前先备份一下命令
cp /usr/bin/cp{,.bak}
cp /usr/bin/mv{,.bak}
因为原命令不在了,所以需要将新的命令复制到/usr/bin下面:
cd coreutils-8.32
src/cp src/cp /usr/bin/cp
src/cp src/mv /usr/bin/mv
修改配置文件设置别名,其实也可以不用设置别名,只要使用cp和mv的时候,手动加上-ig就能看到进度条了:
vim /etc/profile
#在文件末尾增加以下两行
alias cp='cp -ig'
alias mv='mv -ig'
使配置文件生效:
source /etc/profile
6、测试命令效果
cp
mv
这里直接用dd 命令快速生成一个1GB的文件:
dd if=/dev/zero of=filename bs=1M count=1000
然后复制查看效果:
cp filename filename1
标签:advcpmv,进度条,补丁包,coreutils,mv,8.32,Linux,cp
From: https://www.cnblogs.com/sillage/p/18173256