GNU cp和GNU mv命令用于在GNU/Linux操作系统中复制和移动文件和目录。这两个命令缺少的一个特性是它们不显示任何进度条。如果复制一个大文件或目录,您就不知道完成复制过程需要多长时间,也不知道复制的数据所占的百分比。还有您将看不到当前正在复制哪个文件或者已经复制了多少个文件。你将看到的只是闪烁的光标和硬盘驱动器LED指示灯。多亏了Advanced Copy (Gnu Coreutils的一个补丁),我们现在可以在Linux中的cp和mv命令中添加进度条,并在复制和/或移动大文件和目录时显示进度条。

高级拷贝(Advanced Copy)是GNU cp和GNU mv程序的一个模块。它会添加一个进度条,并提供一些有关复制或移动文件和文件夹时发生情况的信息。不仅是进度条,它还显示数据传输速率、估计剩余时间和当前正在复制的文件名。最后,您将看到一个简短的摘要,说明复制了多少个文件以及复制这些文件所用的时间。

安装“Advanced Copy”补丁,将进度条添加到Linux的cp和mv命令中

cp和mv命令是GNU coreutils的一部分。所以你需要从这里下载最新的GNU源代码。

linuxmi@linuxmi:~/www.linuxmi.com$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz

使用命令解压下载档案:

linuxmi@linuxmi:~/www.linuxmi.com$ tar xJf coreutils-8.32.tar.xz

这个命令将在当前目录中提取一个名为coreutils-8.32的文件夹中的coreutils存档。cd进去:

linuxmi@linuxmi:~/www.linuxmi.com$ cd coreutils-8.32/

使用以下命令下载Advanced Copy补丁:

linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch

最后,通过逐个运行以下命令应用补丁:

linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$ patch -p1 -i advcpmv-0.8-8.32.patch

linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$ ./configure

linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$ make

现在将在coreuths -8.32/src文件夹中创建两个新的补丁二进制文件cp和mv。只需像下面这样将它们复制到你的$PATH:

linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$ sudo cp src/cp /usr/local/bin/cp

[sudo] linuxmi 的密码:

linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$ sudo cp src/mv /usr/local/bin/mv

就这样。cp和mv命令现在有了进度条功能。

当你在复制或移动文件和目录时想要一个进度条,只需添加 -g 标签,如下所示:

linuxmi@linuxmi:~/www.linuxmi.com$ cp -g /home/linuxmi/Fedora-Silverblue-ostree-x86_64-32-1.6.iso /home/linuxmi/www.linuxmi.com/

或者使用 --progress-bar 标签:

linuxmi@linuxmi:~/www.linuxmi.com$ cp --progress-bar /home/linuxmi/Fedora-Silverblue-ostree-x86_64-32-1.6.iso /home/linuxmi/www.linuxmi.com/

样例输出如下图:

在Linux中向cp和mv命令添加进度条

在复制过程的最后,您将看到复制了多少文件,复制文件花费了多长时间,以及每秒的数据传输速率。怎样,很不错吧?

1 files ( 2.5 GiB) copied in 42.0 seconds ( 61.1 MiB/s).

要递归复制一个目录及其子目录,只需添加-R标志:

$ cp -gR directory1/ directory2/

类似地,使用mv命令移动文件,运行:

$ mv -g archlinux.iso mydownload/

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

$ mv --progress-bar archlinux.iso mydownload/

使用mv命令移动目录:

$ mv -g directory1/ directory2/

您还可以编辑~/.bashrc文件创建别名来节省几个按键:

$ nano ~/.bashrc

在末尾添加以下几行:

aliascp='/usr/local/bin/cp -gR'

alias mv='/usr/local/bin/mv -g'

按Ctrl+o和Ctl+x保存和关闭文件。

现在运行以下命令使更改生效:

$ source ~/.bashrc

从现在开始,您可以只使用cp或mv命令,而不需要使用 -g (或 --progress-bar)标志。

请注意,原始程序没有被覆盖。您仍然可以在任何时候通过/usr/bin/cp或/usr/bin/mv调用它们

如果您经常复制或移动大量大文件和目录,那么在cp和mv命令中添加进度条功能是个很好的方法。您现在可以看到在复制和移动文件时到底发生了什么,而不是时时盯着屏幕。

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

linux mv 递归拷贝,奇技淫巧 - 给Linux中的cp和mv命令中添加进度条的高级拷贝相关推荐

  1. 给Linux中的cp和mv命令中添加进度条的高级拷贝

    GNU cp和GNU mv命令用于在GNU/Linux操作系统中复制和移动文件和目录.这两个命令缺少的一个特性是它们不显示任何进度条.如果复制一个大文件或目录,您就不知道完成复制过程需要多长时间,也不 ...

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

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

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

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

  4. linux的yum命令无法使用在哪里下载_Linux 知识分享:为Linux的cp和mv命令添加进度条...

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

  5. 为Linux的cp和mv命令添加进度条

    为Linux的cp和mv命令添加进度条 cp和mv可能是大家日常中使用最多的Linux命令之一.但是有一个突出的问题是这两个命令都不会有任何提示信息,这在操作大文件时候只能干等.可能大家对此已经习以为 ...

  6. 【技巧】Excel单元格中添加进度条

    制作excel表格中有很多小技巧可以帮助我们更好的观察数据,上次和大家分享如何将表格转换成图表形式来查看,今天和大家分享,如何在单元格中又有数据还能设置出进度条,直观观察数据. 其实具体操作很简单,我 ...

  7. 优酷进度条不能拖动_优酷画面一直加载中,有声音没画面,拖动进度条无效怎么办...

    优酷画面一直加载中,有声音没画面,拖动进度条无效: 1.建议用户检查网络稳定性,如果是超清视频,尝试切换成高清或标清模式进行视频观看. 2.暂停其它的下载活动, 如: BT下载.其它P2P软件的数据交 ...

  8. cp命令显示进度条_为Linux的cp和mv命令添加进度条

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

  9. 【Linux】SSH协议 SSH登录和SCP传文件指令 ssh命令中变量的空格问题

    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是较可靠,专为远程登录会话和 ...

最新文章

  1. 《Linux内核原理与分析》第二周作业
  2. 业务逻辑全写在sql_TiDB 在转转的业务实战
  3. c++中的函数模版和类模版
  4. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY14-概率图模型
  5. ng机器学习视频笔记(二) ——梯度下降算法解释以及求解θ
  6. 合并的表格怎么加横线_excel表格如何在数据之间加横线-在excel里怎么添加单元格横线...
  7. Java创建型模式的讨论
  8. OpenJudge NOI 1.4 20:求一元二次方程的根
  9. Codeforces Round #346 (Div. 2) D. Bicycle Race 叉积
  10. 用EZBOOT制作多个gho文件的安装盘
  11. mysql语句事务回滚_mysql语句,事务处理回滚的问题。
  12. WEB前端常用JavaScript代码知识点
  13. 如何用Python实现目录遍历
  14. python没有报错但是没结果_python爬取豆瓣top250的电影的信息,没有报错哦,但是没有结果...
  15. Unity上传图片到服务器及服务器如何配置
  16. MATLAB中uigetfile函数使用方法
  17. 中兴配置dhcp服务器,中兴ZXR10 5928三层交换机DHCP配制步骤
  18. 度量学习中的马氏距离
  19. Android 跳转外部浏览器
  20. 网站性能优化三大策略

热门文章

  1. IDEA 修改JavaWeb的访问路径
  2. 细数sass安装中遇到的坑
  3. 《网络空间欺骗:构筑欺骗防御的科学基石》一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图...
  4. JS进阶之---函数,立即执行函数
  5. 用JS获取地址栏参数的方法
  6. struts2遍历select
  7. 灰鸽子病毒手工清除方法
  8. 普通话测试系统_普通话
  9. sql优化技巧_使用这些查询优化技巧成为SQL向导
  10. leetcode392. 判断子序列(动态规划)