cp和mv可能是大家日常中使用最多的Linux命令之一。但是有一个突出的问题是这两个命令都不会有任何提示信息,这在操作大文件时候只能干等。可能大家对此已经习以为常,但是其实上也有解决解决方法,本文我们就介绍一个Gnu Coreutils(cp和mv的源代码包)的补丁Advanced Copy,用于给其增加进度条的功能。

Advanced Copy是cp和mv 程序mod。它通过给cp和mv添加了一个进度条,在进行文件(夹)复制或移动操作时候提供进度条,数据传输速率,估计的剩余时间以及当前正在操作文件名等信息。最后,还会提供一个操作的信息摘要显示操作多少个文件以及操作花费多长时间。

安装

下载源码

cp和mv命令是GNU coreutils的一部分。为了给其添加插件,需要下载器源码并编译安装。

我们可以从GNU的软件ftp下载 coreutils或者通过源码Git仓库cgit,或者镜像站 gitweb 和GitHub下载,最新版本为8.32。

curl -O ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz

-O的含义

-O, --remote-name Write output to a file named as the remote file

--remote-name-all Use the remote file name for all URLs

使用以下命令解压源码包:

tar xvJf coreutils-8.32.tar.xz

这样所有源码都会解压到coreutils-8.32文件夹中。

cd coreutils-8.32/

给其增加Advanced Copy修补程序(通过github仓库下载github:jarun/advcpmv):

cd ..

git clone https://github.com/jarun/advcpmv.git

添加补丁

对下载的补丁包,使用下面命令来打补丁:

patch -p1 -i ../advcpmv/advcpmv-0.8-8.32.patch

编译

运行编译程序,对打补丁的源码目录编译

./configuremake

编译完成后在该编译目录coreutils-8.32/src的文件夹中会生成应用程序cp和mv。

使用

增加系统路径

只需将它们复制到系统的$PATH中,如下所示:

sudo cp src/cp /usr/local/bin/icp

sudo cp src/mv /usr/local/bin/imv

这样cp和mv命令就附带了进度条的功能。在复制或移动文件和目录时需要进度条,只需添加-g参数或者--progress-bar标志:

icp -g archlinux.iso mydownload/

icp --progress-bar archlinux.iso mydownload/

就可以显示进度条:

Copying at 25.7 MiB/s (about 0h 0m 1s remaining)

archlinux.iso 568.1 MiB / 646.0 MiB

[=========================================> ] 87.9 %

在复制过程结束时,可以看到复制了多少文件,复制文件花费了多长时间以及每秒的数据传输速率。

1 files (305.0 MiB) copied in 1.8 seconds (172.2 MiB/s)

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

icp -gR directory1/ directory2/

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

imv -g archlinux.iso mydownload/

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

imv --progress-bar archlinux.iso mydownload/

要使用mv命令移动目录,同样使用-g参数:

imv -g directory1/ directory2/

添加别名

还可以创建别名以保存一些按键。编辑~/.bashrc文件:

vim ~/.bashrc

末尾添加以下行:

alias icp='/usr/local/bin/icp -gR'alias imv='/usr/local/bin/imv -g'

按Shift+zz保存并关闭文件。

现在运行source命令以使更改立即生效:

source ~/.bashrc

这样在cp或mv默认就附带-g(或--progress-bar)标志的命令,而无需手动增加该标志。

要使用默认不带精度条的程序,可以通过/usr/bin/cp或 /usr/bin/mv使用即可。

当然,如果cp和mv不在/usr/local/bin下,命名为cp和mv也是可以的。icp和imv只是为了和原本的命令做区分。

喜欢这篇文章?欢迎打赏~~

cp命令显示进度条_为Linux的cp和mv命令添加进度条相关推荐

  1. 设置linux查看历史命令显示两个小时内,linux系统中history历史命令显示执行日期和时间...

    在我们日常维护工作中,history历史命令查看是经常会用到的,特别是系统出了问题,肯定会在第一时间要查看之前都执行过什么命令,但是系统默认的history命令列表中是不显示命令执行时间和日期的,这就 ...

  2. linux cp源码_为Linux的cp和mv命令添加进度条

    cp和mv可能是大家日常中使用最多的Linux命令之一.但是有一个突出的问题是这两个命令都不会有任何提示信息,这在操作大文件时候只能干等.可能大家对此已经习以为常,但是其实上也有解决解决方法,本文我们 ...

  3. linux添加用户命令_为Linux的cp和mv命令添加进度条

    cp和mv可能是大家日常中使用最多的Linux命令之一.但是有一个突出的问题是这两个命令都不会有任何提示信息,这在操作大文件时候只能干等.可能大家对此已经习以为常,但是其实上也有解决解决方法,本文我们 ...

  4. linux命令优先级设置,linux renice命令参数及用法详解(linux修改程序运行优先级命令)...

    linux renice命令参数及用法详解(linux修改程序运行优先级命令) 发布时间:2012-07-21 12:45:32   作者:佚名   我要评论 renice指令可重新调整程序执行的优先 ...

  5. Linux中rename和mv命令用法学习修改文件名区别和总结

    如何用命令修改文件名呢?在Linux下可以用rename命令,当然还可以使用mv命令,这里分享下Linux rename命令的用法. 有一部分人说Linux下没有rename命令,建议大家用mv命令. ...

  6. ssh中exit命令退出远程服务器_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止...

    问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)之后,发现该服务中断,导致网页无法访问. 解决方法:使用nohup命令让 ...

  7. linux wget 命令_在Linux中如何使用wget命令?

    linux wget 命令 In this tutorial, let's learn how to download a file using the wget command in Linux. ...

  8. linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录

    Linux培训:cp命令复制文件和目录 更新时间:2019年04月02日16时56分 来源:传智播客linux培训 浏览次数: cp 是用于复制的命令,其基本信息如下: 命令名称:cp: 英文原意:c ...

  9. dos命令窗口光标闪烁_史上最全的Vim命令(二)

    8. 排版 8.1 基本排版 << 向左缩进一个shiftwidth >> 向右缩进一个shiftwidth :ce(nter) 本行文字居中 :le(ft) 本行文字靠左 : ...

最新文章

  1. SpringBoot培训教程--史前文明之Spring简介
  2. mysql2已经存在数据数据导入,在MYSQL中导入已存在的数据库
  3. openwrt转载--openwrt框架分析
  4. com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决
  5. android程序的入口点,常见android面试基础题
  6. 计算机指令int,汇编入门学习笔记 (十二)—— int指令、端口
  7. 全球通吃的九大黄金专业
  8. memory拷贝与string拷贝的区别
  9. linux 脚本 java_linux系统下运行java项目的脚本编写
  10. 安装PostgreSQL客户端
  11. 概率论 方差公式_2020考研数学:概率论各章节知识点梳理
  12. dw怎么写html,dw怎么写html
  13. 【Java爬虫】爬取南通大学教务处成绩
  14. ExpandableListView购物车—+okhttp封装
  15. S905L(P211)盒子刷android tv以及刷emuelec 4.4/4.5的向导/方法
  16. 百度前端技术学院--零基础--第四天:背景边框列表链接和更复杂的选择器
  17. 智慧充电桩开发让充电变得更加安全
  18. 手把手教你手写Spring框架
  19. SpringBoot+Vue项目校园在线拍卖系统
  20. 空间直线方程及其与面线的夹角

热门文章

  1. Git 提示You asked me to pull without telling me which branch you...
  2. 使用eclipse安装python插件_如何为eclipse安装合适版本的python插件pydev
  3. 通过Matlab计算拟合优度
  4. 微信朋友圈html5广告,NIKE 一个全新的H5刷屏,开辟了微信朋友圈广告的新形态!
  5. 立式离心泵的工作原理与维护
  6. linux 版本适用对象,下面关于Linux发行版本,那些说法是正确的?
  7. pythonturtle复制图像_Python图标副本(turtle),python,复制,Turtle
  8. 利用tushare分析券商涨停后上证指数的表现
  9. 再谈关于我原来写的一篇博文《终于成功安装了 SigmaTel High Definition Audio CODEC 驱动》
  10. Tushare之股票数据分析