什么是带进度条的 CP/MV
本质上,这可以理解为一个系统原生工具的“增强补丁”。它通过对内核的复制(cp)和移动(mv)命令进行源码级的修改和重新编译,赋予了它们实时反馈进度的能力。安装完成后,你会得到两个新命令:cpg和mvg。使用时,只需加上一个简单的-g参数,原本“沉默不语”的终端窗口里,就会清晰地浮现出进度条、速度以及剩余时间。

对于需要经常在服务器上进行数据备份或迁移的操作者来说,这个小工具的实用性不言而喻。想象一下,面对几十GB甚至更大的文件传输任务时,光标在屏幕上长久地闪烁却毫无反馈,那种不确定的等待着实令人焦虑。而有了进度可视化,整个操作过程就变得透明、可控,心里也踏实多了。
实际用起来什么样

具体到使用场景,它的表现相当直观:
(1) 复制单个大文件
cpg -g movie.mkv /backup/
执行后,终端会动态显示类似以下信息:
[======> ] 45% (4.5G/10G) 60MB/s 还剩1分钟
进度百分比、已处理数据量、实时速度以及预估剩余时间一目了然,让你能精准把握任务完成节点。
(2) 复制整个文件夹
cpg -gR documents/ backup_docs/
在处理包含大量文件的目录时,它的优势更加明显。它会计算并显示整个文件夹的总体进度,而不是像原生命令那样只反馈当前正在处理的最后一个文件:
正在复制... [========> ] 70%已处理:3200/5000个文件
这样,你对整体工作量就有了全局概念。
(3) 移动文件也适用
mvg -g database.db /new_location/
移动(mv)操作同样受益。使用mvg -g命令,在移动文件时也能享受到同样的进度条反馈,原理和效果与复制一致。
(4) 设置别名更方便
为了不改变日常操作习惯,最便捷的方式是将其设为命令别名。在你的~/.bashrc(或其他shell配置文件)末尾添加以下两行:
alias cp='cpg -g'
alias mv='mvg -g'
保存并生效后,你之后使用的每一个cp或mv命令,都将自动附带进度条功能,实现了无缝升级。
安装步骤
整个安装过程并不复杂,通常通过几个步骤即可完成。
(1) 快速安装脚本
对于追求效率的用户,可以使用社区提供的一键安装脚本。当然,出于安全考虑,建议在执行前先查看一下脚本内容。
# 一键安装(用之前可以看看脚本内容)
curl -sL https://git.io/advcpmv-installer | bash
# 将编译好的程序复制到系统目录
sudo cp src/cp /usr/local/bin/cpg
sudo cp src/mv /usr/local/bin/mvg
(2) 配置别名
# 编辑shell配置文件,例如bashrc
nano ~/.bashrc
# 在文件末尾添加别名定义
alias cp='/usr/local/bin/cpg -g'
alias mv='/usr/local/bin/mvg -g'
# 保存退出后,使配置立即生效
source ~/.bashrc
(3) 测试一下
安装完成后,可以通过一个简单的测试来验证功能是否正常。
# 快速生成一个约500MB的测试文件
dd if=/dev/zero of=testfile bs=1M count=500
# 使用带进度条的命令复制它
cpg -g testfile testfile.copy
如果一切顺利,你应该能看到终端中开始出现动态更新的进度条,这标志着工具已经成功安装并可以正常工作了。
