pv:给任意管道加上进度条
用 pv 监控复制文件、写镜像、SSH 传输时的进度、速率和预计剩余时间。
在管道中间插入 pv(如 pv 文件 | dd of=...)即可显示实时进度条;无法得知总量时用 -s 指定大小。
01命令
命令
$ pv big.iso | dd of=/dev/sdX bs=4M && tar -cf - dir | pv -s $(du -sb dir | cut -f1) | ssh host 'tar -xf -'02作用说明
管道默认毫无反馈——往 U 盘 dd 镜像或 tar over ssh 传输可能静默卡上几分钟。pv 插在两个阶段之间,统计流过的字节数并显示百分比、已用时间、当前速率和预计剩余时间;从管道读入时它需要通过 -s 给出预期总量(如 $(du -sb 目录 | cut -f1))才能算出百分比。-L 可以限速,-n 则输出机器可读的百分比供脚本使用。
03风险
!注意: 需要安装 pv 包(通常不预装);用 dd 写设备时目标会被不可逆地覆盖。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- pv(1) — Arch Linux manual依据: Documents -p progress, -b bytes, -r rate, -s size and -L rate-limit options
- pv(1) — Ubuntu manpage依据: pv shows progress, elapsed time, throughput and ETA for data through a pipe; -s sets expected total size, -L limits rate
最后验证: 2026-09-17 · 分类: 文件与文件夹