cp、mv添加进度条

1、下载coreutils

cp和mv是由coreutils提供的,先要看当前系统的coreutils版本,然后重新编译打补丁处理。

wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
tar xf coreutils-8.32.tar.xz

2、下载补丁包

https://github.com/jarun/advcpmv/archive/refs/heads/master.zip
unzip master.zip

3、打补丁安装

cd coreutils-8.32
cp ../advcpmv-master/advcpmv-0.8-8.32.patch ./
patch -p1 -i advcpmv-0.8-8.32.patch
然后开始编译
./configure 
make
在configure过程中可能会出现这个报错:
checking whether mknod can create fifo without root privileges... configure: error: in '/root/cpmvpatch/coreutils-9.5':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
按提示设置一个环境变量:export FORCE_UNSAFE_CONFIGURE=1

4、配置

备份下原来的cp和mv
cp /usr/bin/cp{,.bak}
cp /usr/bin/mv{,.bak}

拷贝新编译的cp和mv到此目录下使用
# src/cp src/cp /usr/bin/cp
# src/mv src/mv /usr/bin/mv

在~/.bashrc中新加两个alias,这里加个-g是显示进度条的
alias cp='cp -ig'
alias mv='mv -ig'
source ~/.bashrc 让配置生效