Linux系统自带的cp和mv命令无法显示操作进度,如果拷贝或者移动的文件比较大的时候,有进度条更方便我们了解操作进度。这里介绍使用Advanced Copy补丁来使cp和mv命令带进度条的方法。
下载coreutils 源码
cp和mv命令是GNU coreutils的一部分。为了给其添加插件,需要下载器源码并编译安装。我们可以从GNU的软件ftp下载:
curl -O http://ftp.gnu.org/gnu/coreutils/coreutils-9.1.tar.xz
tar xvJf coreutils-9.1.tar.xz
下载补丁包
Advanced Copy补丁可以去github仓库下载: https://github.com/jarun/advcpmv 。
仓库中有很多版本,这里选用最新的advcpmv-0.9-9.1.patch,将补丁文件拷入coreutils文件夹,并用以下命令打补丁:
patch -p1 -i advcpmv-0.9-9.1.patch
编译
接下来对coreutils重新编译:
./configure
make
编译完成后在该编译目录src的文件夹中会生成应用程序cp和mv。
使用
如果想让整个服务器系统都使用打补丁的cp和mv命令,可以将src文件夹中的cp和mv文件拷贝至/usr/local/bin来替换原有的cp和mv命令。如果不想覆盖原来的命令,也可以将cp和mv命令重命名使用。
具体使用方法为:
cp -g copyfile copydir
cp --progress-bar copyfile copydir
即可显示进度条,mv命令同理。要递归复制目录及其子目录,只需添加-R 参数:
cp -gR dir1 dir2
也可以使用-h参数查看其它可添加的参数的功能。