linux 中为 cp 和 mv 命令添加进度条
linux 中为 cp 和 mv 命令添加进度条
GNU cp
和GNU mv
工具用于复制和移动文件和目录在GNU / Linux的操作系统。这两个应用程序中缺少的一个功能是它们不显示任何进度条。如果你复制一个大文件或目录,你真的不知道复制过程需要多长时间才能完成,或者复制的数据百分比。你不会看到当前正在复制哪个文件,或者已经复制了多少文件。感谢Advanced Copy
,一个补丁Gnu Coreutils
,我们现在可以在 Linux 中添加进度条cp
和mv
命令,并在复制和/或移动大文件和目录时显示进度条。
Advanced Copy 是GNU cp
和 GNU mv
序的 mod 。它添加了一个进度条,并提供有关复制或移动文件和文件夹时发生的情况的一些信息。不仅是进度条,它还显示数据传输速率、估计剩余时间和当前正在复制的文件名。
安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条
cp 和 mv 命令是GNU coreutils
. 所以你需要GNU coreutils
从这里
下载最新的。
1 | > wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz |
现在两个新的补丁的二进制文件即cp
与mv
将在中创建coreutils-9.0/src
的文件夹。只需将它们复制到你的 $PATH 中,如下所示:
1 | $ cp ./src/cp /usr/local/bin/cpg |
该cpg
和mvg
命令有现在进度条的功能。每当你在复制或移动文件和目录时需要进度条时,只需添加-g
如下标志:
1 | $ cpg -g ../coreutils-9.0.tar.xz ./ |
或使用--progress-bar
标志:
1 | $ cpg --progress-bar ../coreutils-9.0.tar.xz ./ |
示例输出:
1 | [root@rumenz.com ~]# cpg -g nifi-1.14.0-bin.tar.gz test/ |
在复制过程结束时,你将看到复制了多少文件、复制文件所用的时间以及每秒的数据传输速率。
1 | 1 files ( 1.3 GiB) copied in 25.5 seconds ( 53.0 MiB/s). |
要递归复制目录及其子目录,只需添加-R
标志:
1 | $ cpg -gR directory1/ directory2/ |
同样,要使用mv
命令移动文件,请运行:
1 | $ mvg -g nifi-1.14.0-bin.tar.gz test/ |
或者,使用--progress-bar
标志:
1 | $ mvg --progress-bar nifi-1.14.0-bin.tar.gz test/ |
要使用mv
命令移动目录,请使用:
1 | $ mvg -g directory1/ directory2/ |
你还可以创建别名。编辑~/.bashrc
文件:
在最后添加以下几行:
1 | alias cp='/usr/local/bin/cpg -gR' |
现在运行以下命令使更改生效:
1 | $ source ~/.bashrc |
从现在开始,你可以只使用没有(或)标志的cp
或mv
命令。-g
--progress-bar
请注意,原始程序不会被覆盖。你仍然可以随时通过/usr/bin/cp
或 呼叫他们 /usr/bin/mv
。
如果你经常复制或移动大量大文件和目录,推荐向cp
和mv
命令添加进度条功能。