如何優(yōu)雅的給 cp 和 mv 命令添加一個(gè)高顏值的進(jìn)度條

由于 ??cp?? 和 ??mv?? 命令都是屬于 ??coreutils?? 工具包下的,因此我們的主要操作就是在編譯 ??coreutils?? 的時(shí)候加入補(bǔ)丁從而實(shí)現(xiàn)進(jìn)度條功能。
# 注意盡量不要使用 root 用戶操作
$ pwd
/home/tinychen
# 下載coreutils
$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
$ tar -xJf coreutils-8.32.tar.xz
$ cd coreutils-8.32/
# 下載 github 上的補(bǔ)丁
$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
# 打補(bǔ)丁,實(shí)現(xiàn)進(jìn)度條顯示
$ patch -p1 -i advcpmv-0.8-8.32.patch
patching file src/copy.c
patching file src/copy.h
patching file src/cp.c
patching file src/mv.c
# 編譯安裝
$ ./configure
$ make
# 將打補(bǔ)丁生成的cp和mv命令的二進(jìn)制文件復(fù)制到bin目錄下
$ sudo cp src/cp /usr/local/bin/cp
$ sudo cp src/mv /usr/local/bin/mv
接著我們只需要在使用 ??cp?? 和 ??mv?? 命令的時(shí)候加上 ??-g?? 參數(shù)就可以顯示進(jìn)度條了,為了方便起見我們可以在 ??.bashrc?? 文件中設(shè)置 ??alias??
$ alias cp='cp -ig'
$ alias mv='mv -ig'
試一下實(shí)際效果,復(fù)制一個(gè)大文件夾的時(shí)候可以顯示總進(jìn)度和當(dāng)前文件復(fù)制進(jìn)度,以及在復(fù)制完成之后還可以顯示復(fù)制的過程中的平均速度。
$ cp -r /samba/Elements02/kvm/* /kvm/
0 files copied so far... 1.6 GiB / 67.2 GiB
[===> ] 2.4 %
Copying at 178.4 MiB/s (about 0h 6m 45s remaining)
/samba/Elements02/kvm/iso/CentOS-6.10-x86_64-bin-DVD1.iso 1.6 GiB / 3.7 GiB
[========================================================================> ] 43.4 %
































