dd出力を抑制する方法は?

dd出力を抑制する方法は?

を使用するbashスクリプトがありますdd。問題は、ddが私のスクリプトの出力を混乱させる多くの出力を生成することです。周辺を検索してみたら解決策を見つけました。

dd if=boot1h of="/dev/r$temp1" >& /dev/null

選択肢はありますか、それとも/dev/null唯一の方法でリダイレクトしますか?

答え1

次に追加status=none:

dd if=boot1h of="/dev/r$temp1" status=none

~からdd(coreutils) 8.21 ドキュメント:

'status=LEVEL'
     Transfer information is normally output to stderr upon receipt of
     the 'INFO' signal or when 'dd' exits.  Specifying LEVEL will adjust
     the amount of information printed, with the last LEVEL specified
     taking precedence.

     'none'
          Do not print any informational or warning messages to stderr.
          Error messages are output as normal.

     'noxfer'
          Do not print the final transfer rate and volume statistics
          that normally make up the last status line.

     'progress'
          Print the transfer rate and volume statistics on stderr, when
          processing each input block.  Statistics are output on a
          single line at most once every second, but updates can be
          delayed when waiting on I/O.

答え2

dd(1)マニュアルページから:

   status=noxfer
          suppress transfer statistics

したがって:

dd if=boot1h of="/dev/r$temp1" status=noxfer

これはまだ出力されます

0+1 records in
0+1 records out

シャットダウン時にガベージを作成するため、ddデータシンクロにリダイレクトするのは実際には唯一のオプションです。

答え3

後で参照できるように:

dd出力を抑制するには、次のようにstderrを/ dev / nullに完全にリダイレクトします。

dd if=/dev/urandom of=sample.txt bs=5MB count=1 2> /dev/null

たとえば、bashでtimeコマンドを使用してプロセス時間を測定し、ddから生成された出力を取得せずに結果を変数に割り当てたい場合、この方法はうまく機能します。

引用:http://www.unix.com/shell-programming-and-scripting/131624-how-suppress-dd-output.html

答え4

このような機能は、最新バージョンのBASHおよびZSHでも機能します。

dd if=/path/to/file of=/path/to/another_file bs=1M count=1 &> /dev/null

PSこれは私が実行したものの一例です。

関連情報