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

2023-11-16

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

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

 

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

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

 

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

tar xvJf coreutils-8.32.tar.xz

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

cd coreutils-8.32/

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

添加补丁

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

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

编译

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

./configure
make

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

使用

增加系统路径

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

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

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

cp -g archlinux.iso mydownload/
cp --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 %

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

 

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

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

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

cp -gR directory1/ directory2/

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

mv -g archlinux.iso mydownload/

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

mv --progress-bar archlinux.iso mydownload/

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

mv -g directory1/ directory2/

添加别名

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

vim ~/.bashrc

末尾添加以下行:

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

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

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

source ~/.bashrc

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

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

总结

如果经常复制或移动许多大文件和目录,cp和mv操作中添加进度条功能是非常有用的功能。本文中我们介绍了一个Advanced Copy补丁用来实现该功能,可以让我随时了解操作的情况,而不是在哪里傻等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为Linux的cp和mv命令添加进度条 的相关文章

随机推荐

  • bfs打开转盘锁

    转盘锁有四位 每位10个数字 每次只能转一位 而且转的过程中不能出现deadends中的情况 求出最后转几步才能的出target 一串字符串往上往下拨一位会有8种情况 相当于一个节点有8个邻接节点 在这么一个图中 只有一个终点 而且有的节点
  • AcWing题解

    104 货仓选址 417 不高兴的津津 421 陶陶摘苹果 425 明明的随机数 429 奖学金 441 数字统计 445 数字反转 449 质因数分解 680 剪绳子 756 蛇形矩阵 1381 阶乘 3208 Z字形扫描 3375 成绩
  • 银河麒麟安装后,网速过慢,经常断网,网卡:RTL8111/8168/8411

    问题描述 银河麒麟是一款国产系统 我前端时间下载并安装官网提供的试用版本 安装完之后 发现网络时常出现问题 经常网速变慢或者断网 需要电脑休眠之后 重新激活才能连上网络 原因分析 在长达一个月的使用过程中 断断续续的排查中 终于发现了是网卡
  • PYTHON爬虫小工具

    文章目录 google headers格式转换 firefox headers格式转换 判断服务器检测哪些headers头 判断服务器检测哪些cookies值 google headers格式转换 def googleHeadersForm
  • electron-vue 的初步安装使用

    1 安装node 官网Node下载进行安装 2 安装vue cli install 可以缩写为 i npm i g vue cli 安装完成后可以通过输命令查看安装的版本 vue V 2 9 6 3 安装electron vue脚手架 vu
  • 奇安信可信浏览器下载地址

    下载奇安信可信浏览器国密开发者专版 https www qianxin com ctp gmbrowser html
  • 真题详解(UML图)-软件设计(四十七)

    真题详解 Flynn分类 软件设计 四十六 https blog csdn net ke1ying article details 130072198 某搜索引擎在使用过程中 若要增加接受语音输入的功能 使用户可以通过语音来进行搜索 此时对
  • 海岸线——模拟题

    题目链接 http icpc upc edu cn problem php cid 2230 pid 0 题目描述 一个王国分成n m个六边形区域 每个区域内是陆地或者是水 如果一条边两侧为陆地和水 则该条边成为海岸线 求这个王国海岸线的长
  • UE4 抗锯齿设置

    https blog csdn net qq 27151549 article details 80779768
  • Python __str__() 方法

    str 方法和 init 方法类似 都是一些特殊方法 所以前后都有双下划线 它用来返回对象的字符串表达式 如果要把一个类的实例变成 str 就需要实现特殊方法 str 不使用 str 方法 class Student object def
  • 数据结构:直接插入排序详解,java代码实现

    1 动态图 橙色表示有序值红色表示待排序的值 即代码里的temp绿色表示temp的前一个值 即代码里第二个for循环里比较的值a j 2 实现代码 直接插入排序 public static void straightInsertionSor
  • 区块链基本原理概述

    1 简介 区块链本质上是一个由若干区块构成的数据链 这条数据链被分散保存到多个计算机节点 这些计算机节点相互独立 相互勿须信任 没有一个权威的中心节点 因而区块链被认为是一个 去中心化 去信任 的系统 在这两个概念中 去中心化 是方法 去信
  • cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线

    有时在使用CAD中 需要把绘制出来的样条曲线转换成多段线来方便以后的编辑或输出到别的软件 设备 然而要怎么进行操作才能转换出来呢 下面有几种实用的方法供大家参考 第一种方法 特别使用CAD低版本的用户 打开CAD 打开需要转换的样条曲线图纸
  • Discuz! X2.5 个人空间主题列表帖子分页地址出错的解决方法

    可用以下方案解决 打开文件 source unction unction misc php 找到 domain http G setting domain app forum G setting domain app forum G set
  • Python函数(完整版)

    01 函数的概念 所谓函数 就是把就有独立功能的代码块组织为一个小模块 在需要的时候调用 函数的使用包含两个步骤 1 定义函数 封装 独立的功能 2 调用函数 享受封装的成果 函数的作用 在开发程序是 使用函数可以提高编写的效率以及代码的重
  • java中constant_如何在Java中定义常量(Constant)

    Method One interface ConstantInterface String SUNDAY SUNDAY String MONDAY MONDAY String TUESDAY TUESDAY String WEDNESDAY
  • Windows下使用命令行直接编译STM32

    1 需要准备的工具 makefile运行工具 MinGW gcc编译工具 arm none eabi gcc 2 安装步骤 2 1 MinGW安装 MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物 包括一系
  • 计算机毕业设计Java平面设计作品管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java平面设计作品管理系统 源码 系统 mysql数据库 lw文档 计算机毕业设计Java平面设计作品管理系统 源码 系统 mysql数据库 lw文档 本源码技术栈 项目架构 B S架构 开发语言 Java语言 开发软件 i
  • angular自带的一些api_在angular 2中使用HTTP Rest API

    小编典典 提供的很好的答案 但是我想补充一点 所以发布作为答案 首先 要使用Rest API 我们需要导入Http和HTTP PROVIDERS模块 当我们谈论Http时 第一步显然是 但是 是的HTTP PROVIDERS 在bootst
  • 为Linux的cp和mv命令添加进度条

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