如何优雅地给cp命令添加进度条

在Linux系统中,cp命令是经常使用的命令之一,用于复制文件或目录。有时候,我们需要复制大量的文件或目录结构,或者需要将文件或目录从一个位置复制到另一个位置,但是cp命令并没有提供进度条,这就让我们很难知道复制的进度以及剩余的时间。那么,如何优雅地给cp命令添加进度条呢?via:

易瞳

Byte Xiaochai

在Linux系统中,cp命令的标准输出是将复制过程中产生的消息输出到终端。因此,我们可以通过打印消息到终端来实现进度条的效果。下面我们将介绍两种方法来实现这个功能。

第一种方法是使用pv命令。pv是一个可用于监视数据流的小工具,它可以用于显示实时进度、速度、剩余时间等信息。

首先,需要安装pv命令。在Ubuntu上,可以通过以下命令安装:

```

sudo apt-get install pv

```

接着,在使用cp命令时,我们可以将源文件的输出重定向到pv命令:

```

cp -r source_dir/ dest_dir/ | pv -lep -s "$(du -sb source_dir | awk '{print $1}')"

```

在这个例子中,-r参数表示递归复制整个目录树结构,source_dir/和dest_dir/分别表示源目录和目标目录。pv命令的选项说明如下:

- -l:显示进度百分比和进度条;

- -e:在复制完成时显示估计剩余时间;

- -p:显示实时进度数据;

- -s:指定总大小,这里用du命令计算源目录的总大小。

第二种方法是使用rsync命令。rsync是一个强大的文件复制工具,它支持增量复制、压缩传输和远程复制等多种功能。与cp命令不同,rsync命令可以在复制过程中显示进度条。我们可以在rsync命令中添加--progress选项来启用进度条功能。

以下是一个示例命令:

```

rsync -a --info=progress2 source_dir/ dest_dir/

```

在这个命令中,-a参数表示使用归档模式进行复制,-info=progress2参数表示使用进度条,并以实时方式更新进度。

总的来说,这两种方法都可以实现优雅地给cp命令添加进度条的效果。如果你只需要简单的复制操作,并且已经安装了pv命令,那么第一种方法可能更加方便。如果你需要进行更复杂的复制操作,或者需要使用其他rsync命令的功能,那么第二种方法可能更加适合。希望本文能对你的工作和学习有所帮助!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只晨兴夜不得寐的运维人

你的打赏,是我今晚餐桌上的鸡腿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值