Gibt es eine Möglichkeit, den Status von dd (unter OS X) während des Kopiervorgangs auszugeben?

9

Ich verwende dd, um ISO-Bilder auf einen USB-Stick zu kopieren. Gibt es eine Möglichkeit, den Status von dd während des Kopiervorgangs auszugeben?

Lookyhooky
quelle

Antworten:

23

Wenn Sie OS X verwenden, können Sie STRG-T drücken, um eine Fortschrittsaktualisierung zu erhalten.

Zymhan
quelle
So einfach, ich frage mich, warum jeder eine komplexe Kommandozeilen-Zauberei wählt
Dr. Manhattan,
Meistens, weil dies OS X / BSD-spezifisch ist, denke ich.
Zymhan
3

Sie können jede Befehlszeilentechnik verwenden, die jedem * nix-Benutzer allgemein zur Verfügung steht. Es gibt viele Beispiele:

  1. Fragen Sie Ubuntu
  2. http://pfynotes.blogspot.com/2011/05/monitoring-progress-of-dd-on-osx.html
  3. Kommandozeile fu

Sie alle lassen sich grundsätzlich in eine von zwei Kategorien einteilen: Senden eines Kill-Signals (wie STRG-T) oder Weiterleiten der Ausgabe durch einen Viewer wie pv. Ich würde nur empfehlen pv, wenn Sie bereits MacPorts oder HomeBrew verwenden. Einfachstes Beispiel:

dd if=file.iso | pv | dd of=/dev/sda3

Wenn Sie mehr als eine Datei übertragen möchten und außerdem% complete und und ETA möchten, müssen Sie pv die Größe des Streams angeben, den Sie gerade ansehen. Sie können die Größe eines Verzeichnisbaums als angeben

 `SIZE=$(du -sb . | awk '{print $1}')` 

oder ein ganzes Dateisystem als

 `SIZE=$(df -B1 /dev/sda1 | tail -n1 | tr -s ' ' | cut -d' ' -f2)`  

und geben Sie dann die Größe ein pvals:

dd if=file.iso | pv -s $SIZE | dd of=/dev/sda3
DaveParillo
quelle