You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux/Unix(含macOS)下查看大文件/磁盘克隆进度?

解决cat克隆磁盘时的进度查看问题

哈哈,这个场景我太熟悉了——用cat克隆大磁盘确实比dd顺手还快,但盯着黑屏等半天不知道进度的感觉真的煎熬!别担心,pv完全能搞定这个需求,而且不管是Linux还是macOS都能用,之前对pv的误解其实没必要,它就是专门用来给字节流加进度监控的工具,完美适配你的克隆场景。

一、先搞定pv的安装

  • Linux系统:用包管理器直接装就行
    • Debian/Ubuntu系:sudo apt install pv
    • RHEL/CentOS/Rocky系:sudo dnf install pv
  • macOS:用Homebrew安装最方便
    • 先确保装了Homebrew,然后执行brew install pv

二、用pv实现带进度的磁盘克隆

有两种常用写法,效果差不多,选你习惯的就行:

写法1:直接用pv替代cat读源设备

这个方法最简洁,pv会自动显示实时速度、已传输字节、进度条和剩余时间:

sudo pv /dev/disk8 > /dev/disk9

写法2:把pv作为管道中介(兼容你原来的cat命令)

如果你还是想用cat读设备,把pv插在管道中间就行,效果一样:

sudo cat /dev/disk8 | pv > /dev/disk9

进阶:指定磁盘大小让进度更准确

如果知道源磁盘的准确大小(比如2TB),可以加-s参数,这样进度条会更精准:

sudo pv -s 2T /dev/disk8 > /dev/disk9

这里的2T可以换成具体字节数(比如2199023255552),或者用G(千兆)、M(兆)等单位,根据你的磁盘实际情况调整。

三、如果已经在用cat跑克隆了,怎么中途看进度?

要是你已经启动了cat命令,不想中断重来,也有办法查进度:

Linux系统

  1. 先找到cat进程的PID:pidof cat
  2. 用watch命令实时查看进程的IO统计:
watch -n 1 cat /proc/<你的cat进程PID>/io

里面的rchar是已读取的字节数,wchar是已写入的字节数,对比磁盘总大小就能算出进度。

macOS系统

  1. 找到cat进程PID:pgrep cat
  2. 用diskutil看目标磁盘的已使用空间来估算进度:
diskutil info /dev/disk9 | grep "Used Space"

注意:如果目标是raw磁盘设备,需要把显示的空间大小换算成字节数,再对比源磁盘总大小来计算进度。

四、备选方案:用dd加进度(如果你愿意试试)

虽然你觉得cat更快,但新版本的dd已经支持实时进度显示了,作为备选可以试试:

sudo dd if=/dev/disk8 of=/dev/disk9 bs=1M status=progress

不过实测下来,大文件克隆时cat还是略快一点,所以优先推荐pv的方案。

内容的提问来源于stack exchange,提问作者e-info128

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:05:35