Answers:
从coreutils 8.24开始,dd添加了状态选项。使用Homebrew安装coreutils以更新dd。
brew install coreutils
# All commands have been installed with the prefix 'g'
sudo gdd if=XXXX.iso of=/dev/diskX bs=1 status=progress
> example:
> 139648967 bytes (140 MB, 133 MiB) copied, 304 s, 459 kB/s
dd
本身不提供进度条。您可以通过添加pkill -INFO命令来估计dd复制过程的进度。
例:
dd if=/dev/zero of=/dev/null bs=64m count=1000 & while pkill -INFO -x dd; do sleep 1; done
结果:
[1] 37691
0+0 records in
0+0 records out
0 bytes transferred in 0.028923 secs (0 bytes/sec)
275+0 records in
275+0 records out
18454937600 bytes transferred in 1.029698 secs (17922667819 bytes/sec)
553+0 records in
553+0 records out
37111201792 bytes transferred in 2.048291 secs (18118129881 bytes/sec)
829+0 records in
829+0 records out
55633248256 bytes transferred in 3.068911 secs (18128009214 bytes/sec)
1000+0 records in
1000+0 records out
67108864000 bytes transferred in 3.720346 secs (18038339571 bytes/sec)
[1]+ Done dd if=/dev/zero of=/dev/null bs=64m count=1000
这相当于高达18.1 GB / s。
首先,安装Homebrew Package Manager。然后,您必须安装pv
并dialog
使用以下命令:
brew install pv dialog
然后,您可以运行以下命令以使用以下命令获取进度条:
dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m
但请确保将其替换disk.img
为映像路径和diskX
SD卡的磁盘标识符。如果您想要更多图形化的内容,可以尝试以下操作:
(dd if=disk.img bs=1m | pv -n disk.img | dd of=/dev/diskX bs=1m conv=notrunc,noerror) 2>&1 | dialog --gauge "Writing image to SD card..." 10 70 0
您可以在命令运行时按Control+ t,dd
或pv
通过Homebrew 安装(管道查看器)以获得良好的进度条:
brew install pv
然后执行:
sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2
或(知道图像的大小,在此示例中为16GB):
dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2
示例输出2:
(数据传输,经过时间,速度,进度条和估计时间):
1.61GiB 0:12:19 [2.82MiB/s] [===> ] 10% ETA 1:50:25
很简单!对于macOS High Sierra及以下版本,只需运行一会儿循环,它将一直运行到完成为止。只要确保在另一个窗口中执行以下代码即可:
在固件启动时或在完整操作系统中,以下代码将立即可用
while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done
^为了使机器保持唤醒状态(含咖啡因),而不使用“自制软件”或标准Mac OS X中不提供的工具,因为自制软件需要Internet和实际的操作系统才能安装。
注意:以上内容需要您用进程ID替换PID,它将不断显示进度
$(...)
什么?我知道它们的一般用途,我只是想知道为什么在这里使用它们?