自带进度条的 CP/MV,本质上是对系统原有的复制和移动命令打了“补丁”,重新编译了核心功能。安装完成后,使用 cpg 和 mvg 这两个新命令,加上 -g 参数,复制文件时就能在终端里看到实时进度条了。
平时在服务器上备份大文件时,最让人头疼的就是不知道复制进行到哪儿了。特别是传输几十个G的大文件时,光标卡在那里一动不动,心里直打鼓。后来发现有个给 cp 和 mv 命令加上进度条的方案,装上之后,终端里能清清楚楚看到进度、速度和剩余时间,干活踏实多了。

什么是带进度条的 CP/MV
简单来说,它就是对系统自带的复制和移动命令进行了功能增强,重新编译了二进制文件。安装好之后,使用 cpg 和 mvg 这两个新命令,加上 -g 参数,复制或移动文件时终端里就会显示进度条了。
实际用起来什么样

(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/
效果和复制一样,也能看进度。
(4) 设置别名更方便
在 ~/.bashrc 里加上两行:
alias cp='cpg -g'alias mv='mvg -g'
这样以后直接用 cp 命令就自带进度条了,不用改习惯。
安装步骤
(1) 快速安装脚本
# 一键安装(用之前可以看看脚本内容)curl -sL https://git.io/advcpmv-installer | bash
sudo cp src/cp /usr/local/bin/cpgsudo cp src/mv /usr/local/bin/mvg
(2) 配置别名
# 编辑配置文件nano ~/.bashrc# 在文件末尾添加:alias cp='/usr/local/bin/cpg -g'alias mv='/usr/local/bin/mvg -g'# 保存退出后生效source ~/.bashrc
(3) 测试一下
# 创建一个测试文件dd if=/dev/zero of=testfile bs=1M count=500# 复制试试cpg -g testfile testfile.copy
应该能看到进度条在走了。
