前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中为cp和mv命令添加进度条

linux中为cp和mv命令添加进度条

作者头像
入门笔记
发布2022-06-02 18:14:01
3.6K0
发布2022-06-02 18:14:01
举报
文章被收录于专栏:入门小站入门小站

GNU cpGNU mv 工具用于复制和移动文件和目录在GNU / Linux的操作系统。这两个应用程序中缺少的一个功能是它们不显示任何进度条。如果你复制一个大文件或目录,你真的不知道复制过程需要多长时间才能完成,或者复制的数据百分比。你不会看到当前正在复制哪个文件,或者已经复制了多少文件。你将看到的只是闪烁的光标和硬盘驱动器 LED 指示灯。感谢Advanced Copy,一个补丁Gnu Coreutils,我们现在可以在 Linux 中添加进度条cpmv命令,并在复制和/或移动大文件和目录时显示进度条。

Advanced Copy 是GNU cpGNU mv 程序的 mod 。它添加了一个进度条,并提供有关复制或移动文件和文件夹时发生的情况的一些信息。不仅是进度条,它还显示数据传输速率、估计剩余时间和当前正在复制的文件名。

安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条

cp 和 mv 命令是GNU coreutils. 所以你需要GNU coreutils这里下载最新的。

代码语言:javascript
复制
> 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

现在两个新的补丁的二进制文件即cpmv将在中创建coreutils-9.0/src的文件夹。只需将它们复制到你的 $PATH 中,如下所示:

代码语言:javascript
复制
$ cp ./src/cp /usr/local/bin/cpg
代码语言:javascript
复制
$ cp ./src/mv /usr/local/bin/mvg

cpgmvg命令有现在进度条的功能。

每当你在复制或移动文件和目录时需要进度条时,只需添加-g如下标志:

代码语言:javascript
复制
$ cpg -g nifi-1.14.0-bin.tar.gz test/

image-20211230181338695

或使用--progress-bar标志:

代码语言:javascript
复制
$ cpg --progress-bar nifi-1.14.0-bin.tar.gz test/

示例输出:

代码语言:javascript
复制
[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 %

在复制过程结束时,你将看到复制了多少文件、复制文件所用的时间以及每秒的数据传输速率。

代码语言:javascript
复制
1 files (  1.3 GiB) copied in 25.5 seconds ( 53.0 MiB/s).

要递归复制目录及其子目录,只需添加-R标志:

代码语言:javascript
复制
$ cpg -gR directory1/ directory2/

同样,要使用mv命令移动文件,请运行:

代码语言:javascript
复制
$ mvg -g nifi-1.14.0-bin.tar.gz test/

或者,使用--progress-bar标志:

代码语言:javascript
复制
$ mvg --progress-bar nifi-1.14.0-bin.tar.gz test/

要使用mv命令移动目录,请使用:

代码语言:javascript
复制
$ mvg -g directory1/ directory2/

你还可以创建别名。编辑~/.bashrc文件:

$ nano ~/.bashrc

在最后添加以下几行:

代码语言:javascript
复制
alias cp='/usr/local/bin/cpg -gR'
alias mv='/usr/local/bin/mvg -g'

Ctrl+oCtl+x保存并关闭文件。

现在运行以下命令使更改生效:

$ source ~/.bashrc

从现在开始,你可以只使用没有(或)标志的cpmv命令。-g --progress-bar

请注意,原始程序不会被覆盖。你仍然可以随时通过/usr/bin/cp 或 呼叫他们 /usr/bin/mv

如果你经常复制或移动大量大文件和目录,推荐向cpmv命令添加进度条功能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档