安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条
cp 和 mv 命令是
GNU coreutils
. 所以你需要GNU coreutils
从这里
下载最新的。
> wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz
> tar xvJf coreutils-9.0.tar.xz
> cd coreutils-9.0/
> wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.9-9.0.patch
> patch -p1 -i advcpmv-0.9-9.0.patch
> export FORCE_UNSAFE_CONFIGURE=1
> ./configure
> make
现在两个新的补丁的二进制文件即
cp
与mv
将在中创建coreutils-9.0/src
的文件夹。只需将它们复制到你的 $PATH 中,如下所示:
$ cp ./src/cp /usr/local/bin/cpg
$ cp ./src/mv /usr/local/bin/mvg
该
cpg
和mvg
命令有现在进度条的功能。每当你在复制或移动文件和目录时需要进度条时,只需添加
-g
如下标志:
$ cpg -g nifi-1.14.0-bin.tar.gz test/
或使用
--progress-bar
标志:
$ cpg --progress-bar nifi-1.14.0-bin.tar.gz test/
示例输出:
[root@rumenz.com ~]# cpg -g nifi-1.14.0-bin.tar.gz test/
Copying at 119.3 MiB/s (about 0h 0m 7s remaining)
nifi-1.14.0-bin.tar.gz 959.5 MiB / 1.3 GiB
[============================================> ] 71.0 %
在复制过程结束时,你将看到复制了多少文件、复制文件所用的时间以及每秒的数据传输速率。
1 files ( 1.3 GiB) copied in 25.5 seconds ( 53.0 MiB/s).
要递归复制目录及其子目录,只需添加
-R
标志:
$ cpg -gR directory1/ directory2/
同样,要使用
mv
命令移动文件,请运行:
$ mvg -g nifi-1.14.0-bin.tar.gz test/
或者,使用
--progress-bar
标志:
$ mvg --progress-bar nifi-1.14.0-bin.tar.gz test/
要使用
mv
命令移动目录,请使用:
$ mvg -g directory1/ directory2/
你还可以创建别名。编辑
~/.bashrc
文件:
$ nano ~/.bashrc
在最后添加以下几行:
alias cp='/usr/local/bin/cpg -gR'
alias mv='/usr/local/bin/mvg -g'
按
Ctrl+o
和Ctl+x
保存并关闭文件。现在运行以下命令使更改生效:
$ source ~/.bashrc
从现在开始,你可以只使用没有(或)标志的
cp
或mv
命令。-g
--progress-bar
请注意,原始程序不会被覆盖。你仍然可以随时通过
/usr/bin/cp
或 呼叫他们/usr/bin/mv
。如果你经常复制或移动大量大文件和目录,推荐向
cp
和mv
命令添加进度条功能。
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9057