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

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

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

1566f0d736ed331dfa404abca147c5bc.png

安装“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

abafbc1fbfff4eef228f7742c2cd3eaf.png

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

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

327a04984d5774a65af942934463382b.png

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

14a0dcdcfd03f579a6e4b1c37eabc9b9.png

现在将在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/

样例输出如下图:

16a45d01a297b660c2c68e9a0003ff8c.gif

在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【洛谷P1966】火柴排队

两列排序后将编号一一对应 归并排序求逆序对 &#xff08;每一次交换就去掉一个逆序对&#xff09; 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #define ll long long5 using namespace std;6 const int N100100;7 const ll P99999997;8 …

Alan Walker MV 合辑01 by defender

Alan Walker MV合辑 出来啦&#xff01; 百度网盘下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/10WSool70XBe_8tJOae8V-w 提取码&#xff1a;uckq 地址查看Microsoft Onedrive Download Address:  BE DELETED Google Drive Download Address&#xff1a; …

在unity中设置多种怪物数据_Unity可编程渲染管线(SRP)系列(三)——光照(单通道 正向渲染)...

本文重点:1、漫反射着色2、支持方向光、点光源和聚光灯3、每帧允许16个可见光源4、每个对象最多计算四个像素光和四个顶点光这是涵盖Unity可编写脚本的渲染管线的教程系列的第三部分。这次&#xff0c;我们将通过一个Drawcall为每个对象最多着色8个灯光来增加对漫反射光照的支持…

蛋清打发奶油状

在做蛋糕、冰淇凌、面包之类的时候往往都需要奶油状蛋清&#xff0c;让蛋糕、面包更蓬松&#xff0c;冰激凌也可以使用其当做奶油来用。用料 鸡蛋4个 根据用量选择盐(只做冰激凌用奶油放)5g(根据蛋量)白醋(可以不放&#xff0c;根据喜好)5g(根据蛋量)白砂糖40g(分三次放)根据…

hql可以使用distinct吗_输送食品可以使用白色PVC输送带吗?

食品&#xff0c;是给人们吃到肚子里的&#xff0c;因此不管在加工环节、制造环节还是其他环节&#xff0c;都需要做好食品的安全问题。根据不同的食品&#xff0c;其制造的环境也不同&#xff0c;所使用到的食品输送带的材质也是不一样的&#xff0c;这些是需要根据输送的食品…

htc one m7 linux驱动,HTC One M7官方RUU固件包(可救砖)

在网上找了找关于HTC One M7 (801e)的官方ruu固件包还不多&#xff0c;找了一些&#xff0c;不过有些不能下载&#xff0c;在这里整理了几款可以下载的官方ruu包&#xff0c;这些包都是官方原版的&#xff0c;都是支持线刷的&#xff0c;大家可以下载下来备用了&#xff0c;也可…

c语言fmin最小公倍数,matlab小函数

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;(记得按字母序索引)矩阵向量化操作A(:)拉成一个向量 ($a_{11},a_{21},…$)&#xff0c;注意先列后行repmat用途&#xff1a;创建由小型矩阵重复组合成的矩阵&#…

报表系统的雄心

这周有朋自远方来&#xff0c;聊了对报表工具的看法&#xff0c;因此专门写篇文章来谈谈报表系统的未来。 笔者知道不可能有十全十美的报表系统&#xff0c;毕竟任何一个行业和企业受自身客观环境的限制&#xff0c;但表哥嘛&#xff0c;总要有点理想和追求&#xff0c;就好比到…

vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...

相信不少人有我一样的烦恼&#xff0c;房间太多&#xff0c;或者楼上楼下&#xff0c;家里的wifi信号总是不能无缝切换。路由器放在配电箱&#xff0c;除了客厅信号不错外&#xff0c;一旦到了其他房间&#xff0c;掉线、网速慢等问题让人很苦恼。特别是和小伙伴一起玩游戏一边…

手把手教你 Spark 性能调优

0、背景 集群部分 spark 任务执行很慢&#xff0c;且经常出错&#xff0c;参数改来改去怎么都无法优化其性能和解决频繁随机报错的问题。 看了下任务的历史运行情况&#xff0c;平均时间 3h 左右&#xff0c;而且极其不稳定&#xff0c;偶尔还会报错&#xff1a; 1、优化思路 任…

pytorch线性回归代码_[PyTorch 学习笔记] 1.3 张量操作与线性回归

本章代码&#xff1a;https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py张量的操作拼接torch.cat()torch.cat(tensors, dim0, outNone)功能&#xff1a;将张量按照 dim 维度进行拼接tensors: 张量序列dim: 要拼接的维度代码示例&#…

《UNIXLinux程序设计教程》一2.1 UNIX 输入输出基本概念

2.1 UNIX 输入输出基本概念 在任何一种操作系统中&#xff0c;程序开始读写一个文件的内容之前&#xff0c;必须首先在程序与文件之间建立连接或通信通道&#xff0c;这一过程称为打开文件。打开一个文件的目的可能是要读其中的数据&#xff0c;也可能是要往其中写入数据&…

c语言编常见算法,5个常见C语言算法

5个常见C语言算法十进制转换为二进制的递归程序字符串逆置的递归程序整数数位反序&#xff0c;例如12345->54321四舍五入程序(考虑正负数)二分法查找的递归函数#include#include#include//十进制转换为二进制的递归程序voidDecimalToBinary(int n){if(n<0){printf("…

利用Kinect将投影变得可直接用手操控

Finally 总算是到了这一天了&#xff01;假期里算法想不出来&#xff0c;或者被BUG折磨得死去活来的时候&#xff0c;总是YY着什么时候能心情愉快地坐在电脑前写一篇项目总结&#xff0c;今天总算是抽出时间来总结一下这神奇的几个月。 现在回过头来看&#xff0c;上学期退出AC…

springboot自动配置的原理_SpringBoot自动配置原理

SpringBoot的启动入口就是一个非常简单的run方法&#xff0c;这个run方法会加载一个应用所需要的所有资源和配置&#xff0c;最后启动应用。通过查看run方法的源码&#xff0c;我们发现&#xff0c;run方法首先启动了一个监听器&#xff0c;然后创建了一个应用上下文Configurab…

Django first lesson 环境搭建

pycharm ide集成开发环境 &#xff08;提高开发效率&#xff09; 解释器/编译器编辑器调试环境虚拟机连接 设置VirtualBox端口 操作1 操作2 点击号添加&#xff0c;名称为SSH&#xff0c;其中主机端口为物理机的端口&#xff0c;这里设置为1234&#xff0c;子系统端口为虚拟机的…

《Drupal实战》——3.3 使用Views创建列表

3.3 使用Views创建列表 我们接着讲解Views的设置&#xff0c;首先做一个简单的实例。 3.3.1 添加内容类型“站内公告” 添加一个内容类型“站内公告”&#xff0c;属性配置如表3-1所示。 为该内容类型设置Pathauto的模式news/[node:nid]&#xff0c;并且我们在这里将节点类型…

idea mybatis generator插件_SpringBoot+MyBatis+Druid整合demo

最近自己写了一个SpringBootMybatis(generator)druid的demo1. mybatisgenerator逆向工程生成代码1. pom文件pom文件添加如下内容&#xff0c;引入generator插件org.mybatis.generator mybatis-generator-maven-plugin 1.3.5 mysql …

python isalnum函数_探究Python中isalnum()方法的使用

探究Python中isalnum()方法的使用 isalnum()方法检查判断字符串是否包含字母数字字符。 语法 以下是isalnum()方法的语法&#xff1a; str.isa1num() 参数 NA 返回值 如果字符串中的所有字符字母数字和至少有一个字符此方法返回 true&#xff0c;否则返回false。 例子 下面的例…

动态规划算法——最长上升子序列

今天我们要讲的是最长上升子序列&#xff08;LIS&#xff09;。【题目描述】给定N个数&#xff0c;求这N个数的最长上升子序列的长度。【样例输入】      【样例输出】7        42 5 3 4 1 7 6那么什么是最长上升子序列呢&#xff1f; 就是给你一个序列…