当前位置: 首页 > 科技观察

TricksandTricks-为Linux中的cp和mv命令添加进度条的高级复制

时间:2023-03-23 11:10:14 科技观察

GNUcp和GNUmv命令用于在GNU/Linux操作系统中复制和移动文件和目录。这两个命令缺少的一个特性是它们不显示任何进度条。如果您复制一个大文件或目录,您不知道复制过程需要多长时间才能完成,也不知道将复制多少百分比的数据。您也不会看到当前正在复制哪个文件或已复制了多少文件。您将看到的只是一个闪烁的光标和一个硬盘驱动器LED。感谢AdvancedCopy(GnuCoreutils的补丁),我们现在可以在Linux中为cp和mv命令添加进度条,并在复制和/或移动大文件和目录时显示进度条。AdvancedCopy是GNUcp和GNUmv程序的一个模块。它添加了一个进度条,并提供了一些有关复制或移动文件和文件夹时发生的情况的信息。不仅仅是进度条,它还显示数据传输速率、估计剩余时间和当前正在复制的文件名。最后,您将看到一个简短的摘要,说明复制了多少文件以及复制这些文件所花费的时间。安装“高级复制”补丁,它向Linuxcp和mv命令添加进度条,它们是GNUcoreutils的一部分。所以你需要从这里下载最新的GNU源代码。linuxmi@linuxmi:~/www.linuxmi.com$wgethttp://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz使用命令解压下载文件:linuxmi@linuxmi:~/www.linuxmi.com$tarxJfcoreutils-8.32.tar.xz此命令会将coreutils存档提取到当前目录中名为coreutils-8.32的文件夹中。cd进入:linuxmi@linuxmi:~/www.linuxmi.com$cdcoreutils-8.32/使用以下命令下载高级复制补丁:linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$wgethttps://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch最后,通过运行以下命令来应用补丁:linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$patch-p1-iadvcpmv-0.8-8.32.patchlinuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$./configurelinuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$make现在将创建两个新补丁二进制文件cp和mv。只需像这样将它们复制到您的$PATH中:linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$sudocpsrc/cp/usr/local/bin/cp[sudo]linuxmi的密码:linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$sudocpsrc/mv/usr/local/bin/mv就是这样。cp和mv命令现在具有进度条功能。当您在复制或移动文件和目录时需要进度条时,只需像这样添加-g标志:linuxmi@linuxmi:~/www.linuxmi.com$cp-g/home/linuxmi/Fedora-Silverblue-ostree-x86_64-32-1.6.iso/home/linuxmi/www.linuxmi.com/或者使用--progress-bar标签:linuxmi@linuxmi:~/www.linuxmi.com$cp--progress-bar/home/linuxmi/Fedora-Silverblue-ostree-x86_64-32-1.6.iso/home/linuxmi/www.linuxmi.com/示例输出如下所示:在Linux中为cp和mv命令添加进度条在复制过程结束时,您'您将看到复制了多少文件、复制文件花费了多长时间以及每秒的数据传输速率。怎么样,还不错吧?在42.0秒(61.1MiB/s)内复制了1个文件(2.5GiB)。要递归复制目录及其子目录,只需添加-R标志:$cp-gRdirectory1/directory2/同样,使用mv命令移动文件,运行:$mv-garchlinux.isomydownload/或者,使用--progress-barflag:$mv--progress-bararchlinux.isomydownload/使用mv命令移动目录:$mv-gdirectory1/directory2/你也可以在~/.bashrc文件中编辑创建别名以节省几个击键:$nano~/.bashrc在末尾添加如下行:aliascp='/usr/local/bin/cp-gR'aliasmv='/usr/local/bin/mv-g'按Ctrl+o和Ctrl+x保存并保存关闭文件。现在运行以下命令使更改生效:$source~/.bashrc从现在开始,您可以只使用cp或mv命令,而无需使用-g(或--progress-bar)标志。请注意,原始程序不会被覆盖。您仍然可以随时通过/usr/bin/cp或/usr/bin/mv调用它们如果您经常复制或移动大量大文件和目录,则向cp和mv命令添加进度条功能是个好主意。现在,您不必一直盯着屏幕,而是可以在复制和移动文件时准确地看到发生了什么。