Відповіді:
Та сама інформація, що виводиться щосекунди у відповіді кланомата, може відображатися за допомогою вашої команди. Вам просто потрібно ввести controlTсимвол з клавіатури, поки dd
команда виконує.
Натискаючи controlTсимвол, ви надсилаєте той самий SIGINFO
сигнал dd
команді, яку pkill -INFO -x dd
надсилає команда .
Станом на Coreutils 8.24, dd додав параметри статусу. Встановіть coreutils з Homebrew, щоб оновити 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
сама по собі не забезпечує смугу прогресу. Ви можете оцінити хід процесу копіювання dd, додавши команду pkill -INFO .
Приклад:
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 Гб / с.
Перш за все, встановіть 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
Джерело: /ubuntu//a/516724/765767
Ви можете натиснути Control+ tпід час виконання dd
команди або на гарній панелі прогресу ви можете встановити pv
(переглядач труб) через Homebrew:
brew install pv
а потім виконати:
sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2
або (знаючи розмір зображення, 16 Гб у цьому прикладі):
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, оскільки для її встановлення потрібен Інтернет та фактична ОС.
ПРИМІТКА . Вищеперелічене потребує заміни PID на ваш ідентифікатор процесу, і він буде постійно показувати прогрес
$(...)
? Я знаю, що вони взагалі роблять, мені просто цікаво, чому ви тут їх використовуєте?