3

如何优雅的给 cp 和 mv 命令添加一个高颜值的进度条

 2 years ago
source link: https://os.51cto.com/article/714389.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何优雅的给 cp 和 mv 命令添加一个高颜值的进度条-51CTO.COM

如何优雅的给 cp 和 mv 命令添加一个高颜值的进度条
作者:TinyChen 2022-07-20 09:10:47
文主要介绍如何使用 Github 上的开源项目 advcpmv 来实现 Linux 中的 「cp」 和 「mv」 命令的进度条。
图片

由于 ​​cp​​ 和 ​​mv​​ 命令都是属于 ​​coreutils​​ 工具包下的,因此我们的主要操作就是在编译 ​​coreutils​​ 的时候加入补丁从而实现进度条功能。

# 注意尽量不要使用 root 用户操作
$ pwd
/home/tinychen

# 下载coreutils
$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
$ tar -xJf coreutils-8.32.tar.xz
$ cd coreutils-8.32/

# 下载 github 上的补丁
$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
# 打补丁,实现进度条显示
$ patch -p1 -i advcpmv-0.8-8.32.patch
patching file src/copy.c
patching file src/copy.h
patching file src/cp.c
patching file src/mv.c

# 编译安装
$ ./configure
$ make
# 将打补丁生成的cp和mv命令的二进制文件复制到bin目录下
$ sudo cp src/cp /usr/local/bin/cp
$ sudo cp src/mv /usr/local/bin/mv

接着我们只需要在使用 ​​cp​​ 和 ​​mv​​ 命令的时候加上 ​​-g​​ 参数就可以显示进度条了,为了方便起见我们可以在 ​​.bashrc​​ 文件中设置 ​​alias​

$ alias cp='cp -ig'
$ alias mv='mv -ig'

试一下实际效果,复制一个大文件夹的时候可以显示总进度和当前文件复制进度,以及在复制完成之后还可以显示复制的过程中的平均速度。

$ cp -r /samba/Elements02/kvm/* /kvm/

0 files copied so far...                                                                                                                                     1.6 GiB /  67.2 GiB
[===>                                                                                                                                                                   ]  2.4 %
Copying at 178.4 MiB/s (about 0h 6m 45s remaining)
/samba/Elements02/kvm/iso/CentOS-6.10-x86_64-bin-DVD1.iso                                                                                                    1.6 GiB /   3.7 GiB
[========================================================================>                                                                                              ] 43.4 %
图片

图片


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK