linux中为cp和mv命令添加进度条

安装高级复制补丁以在 Linux 中向 cp 和 mv 命令添加进度条

cp 和 mv 命令是GNU coreutils. 所以你需要GNU coreutils这里下载最新的。

> wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz
> tar xvJf coreutils-9.0.tar.xz
> cd coreutils-9.0/
> wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.9-9.0.patch
> patch -p1 -i advcpmv-0.9-9.0.patch
> export FORCE_UNSAFE_CONFIGURE=1
> ./configure
> make

现在两个新的补丁的二进制文件即cpmv将在中创建coreutils-9.0/src的文件夹。只需将它们复制到你的 $PATH 中,如下所示:

$ cp ./src/cp /usr/local/bin/cpg 
$ cp ./src/mv /usr/local/bin/mvg 

cpgmvg命令有现在进度条的功能。

每当你在复制或移动文件和目录时需要进度条时,只需添加-g如下标志:

$ cpg -g nifi-1.14.0-bin.tar.gz test/ 

或使用--progress-bar标志:

$ cpg --progress-bar nifi-1.14.0-bin.tar.gz test/ 

示例输出:

[root@rumenz.com ~]# cpg -g nifi-1.14.0-bin.tar.gz test/
Copying at 119.3 MiB/s (about 0h 0m 7s remaining)
nifi-1.14.0-bin.tar.gz                                                               959.5 MiB /   1.3 GiB
[============================================>                           ] 71.0 %

在复制过程结束时,你将看到复制了多少文件、复制文件所用的时间以及每秒的数据传输速率。

1 files (  1.3 GiB) copied in 25.5 seconds ( 53.0 MiB/s). 

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

$ cpg -gR directory1/ directory2/ 

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

$ mvg -g nifi-1.14.0-bin.tar.gz test/ 

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

$ mvg --progress-bar nifi-1.14.0-bin.tar.gz test/ 

要使用mv命令移动目录,请使用:

$ mvg -g directory1/ directory2/ 

你还可以创建别名。编辑~/.bashrc文件:

$ nano ~/.bashrc

在最后添加以下几行:

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

Ctrl+oCtl+x保存并关闭文件。

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

$ source ~/.bashrc

从现在开始,你可以只使用没有(或)标志的cpmv命令。-g --progress-bar

请注意,原始程序不会被覆盖。你仍然可以随时通过/usr/bin/cp 或 呼叫他们 /usr/bin/mv

如果你经常复制或移动大量大文件和目录,推荐向cpmv命令添加进度条功能。

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9057

(0)
郭靖的头像郭靖
上一篇 2023年6月15日 下午4:39
下一篇 2023年6月16日 下午4:40

相关推荐

  • MySQL 如何使用离线模式维护服务器

    离线模式 作为 DBA,最常见的任务之一就是批量处理 MySQL 服务的启停或其他一些活动。在停止 MySQL 服务前,我们可能需要检查是否有活动连接;如果有,我们可能需要把它们全部杀死。通常,我们使用 pt-kill 杀死应用连接或使用 SELECT 语句查询准备杀死语句。例如: MySQL 有一个名为 offline_mode 的变量…

    2023年10月20日
    1.1K00
  • 让你配置linux 路由,你该怎么配置

    如下图所示有两个网络,分别是0网段和2网段,路由器1组成0网段,路由器2从路由器一种分出一个2网段 如果要在不同网段直接通讯,需要添加路由,linux添加路由命令如下: route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] add : 添加一条路由规则 del : 删除一条路由…

    2024年6月18日
    1.1K00
  • 使用openssl创建自签发SSL证书

    使用openssl创建自签发SSL证书 生成根证书 生成ca秘钥,得到ca.key openssl genrsa -out ca.key 4096 生成ca证书签发请求,得到ca.csr openssl req -new -key ca.key -out ca.csr -subj “/C=CN/ST=JS/L=NanJing/O=other/OU=other…

    2023年1月31日
    96700
  • Centos7忘记root密码怎么办

    重启linux,进入系统的GRUB菜单界面,选择最下方的,按下小写字母e进入编辑界面 按下方向键,找到以字符串Linux16开头的行,光标移动到结尾,然后输入init=/bin/bash enforcing=0 代表登录系统后,加载bash解释器,然后关闭selinux 按下ctrl+x组合键以单用户模式启动Linux 输入如下命令,重新挂载根目录,进入可写…

    2022年6月11日
    1.3K00
  • 如何处理CentOS Failed to load SELinux policy

    CentOS 7在启动时,卡在进度条界面一直进不去系统,如下图所示: 我们可以通过按键盘的左右方向键,可以看到提示“Failed to load SELinux policy.”,这就是造成系统一直卡住无法正常启动的原因。 原因 是因为没有正确修改系统的selinux的配置,导致系统在启动时报selinux的错误 解决方案 第一步:先重启CentOS7操作系…

    2022年6月15日
    1.6K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信