完了すると、dd
読み書きしたセグメント数、合計サイズ、平均書き込み速度の3行の要約が印刷されます。働くときはdd
とても静かです。
しばらく前に(申し訳ありませんが)dd
3行の要約を印刷できることがわかりました。まだ働いている間SIGUSR1
私がこれをしたので。
dd <magic incantation> &
watch kill -USR1 $!
問題は、要約の3行がdd
左揃えされないことです。各後続の行は、前の行が終了した列から始まります。したがって、改行はdd
印刷されますが、キャリッジリターンは印刷されず、watch
出力を印刷するために使用されるすべての項目にはキャリッジリターンが必要です。
killコマンドの後にさまざまな種類の参照を追加してみましたが、| sed -e '<expression>'
得られた出力はまったく変わりませんでした。
dd
このような状況でどうすればきれいな印刷物を得ることができますか?
ベストアンサー1
kill -USR1
どこにいるのか知る必要はありませんdd
。あなたはそれを使用することができますlsof
入力ファイル記述子の場所を表示します。解析可能な出力を取得するのは少し難しいですが、うまくいきます。これは0
入力ファイル記述子です。標準入力から読み取らずにif=…
引数を渡す場合は、実装に応じてdd
他の記述dd
子から読み取ることができます。
lsof -a -o -p $! -d 0 -F o | sed -n 's/^o[0-9]*t//p'
Linuxでは、この情報をから直接取得できます/proc
。
</proc/$!/fdinfo/0 awk '$1 == "pos:" {print $2}'
cat
代わりに、以下を使用したい場合がありますdd
。一般的に高速そしてエラーが発生する可能性が低い。。