如何优雅地给 cp 命令添加进度条?
来源:嵌入式大杂烩发布时间:2023-02-23600浏览
询问 AI
本文主要介绍如何使用 Github 上的开源项目 advcpmv 来实现 Linux 中的「cp」和「mv」命令的进度条。由于原文:https://tinychen.com/20201128-add-progess-bar-in-cp-mv/
cp和mv命令都是属于coreutils工具包下的,因此我们的主要操作就是在编译coreutils的时候加入补丁从而实现进度条功能。#注意尽量不要使用root用户操作
$pwd
/home/tinychen
#下载coreutils
$wgethttp://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
$tar-xJfcoreutils-8.32.tar.xz
$cdcoreutils-8.32/
#下载github上的补丁
$wgethttps://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
#打补丁,实现进度条显示
$patch-p1-iadvcpmv-0.8-8.32.patch
patchingfilesrc/copy.c
patchingfilesrc/copy.h
patchingfilesrc/cp.c
patchingfilesrc/mv.c
#编译安装
$./configure
$make
#将打补丁生成的cp和mv命令的二进制文件复制到bin目录下
$sudocpsrc/cp/usr/local/bin/cp
$sudocpsrc/mv/usr/local/bin/mv
接着我们只需要在使用cp和mv命令的时候加上-g参数就可以显示进度条了,为了方便起见我们可以在.bashrc文件中设置alias$aliascp='cp-ig'
$aliasmv='mv-ig'
试一下实际效果,复制一个大文件夹的时候可以显示总进度和当前文件复制进度,以及在复制完成之后还可以显示复制的过程中的平均速度。$cp-r/samba/Elements02/kvm/*/kvm/
0filescopiedsofar...1.6GiB/67.2GiB
[===>]2.4%
Copyingat178.4MiB/s(about0h6m45sremaining)
/samba/Elements02/kvm/iso/CentOS-6.10-x86_64-bin-DVD1.iso1.6GiB/3.7GiB
[========================================================================>]43.4%

版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
在公众号聊天界面回复1024,可获取嵌入式资源;回复m,可查看文章汇总
新闻来源:嵌入式大杂烩,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。

