ディスク速度をチェックするためにこのdd
コマンドを使用します。
dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct
これは次のようなものを返します:
1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 8,52315 s, 126 MB/s
ここで、dd
が書き込んでいるファイルではなく、別のファイルにこの出力をパイプ処理したいと思います。
追加してみました
>> /tmp/foo
または
| Sudo tee /tmp/foo
dd
コマンドに追加しますが、空のファイルを作成するだけです。
別のコマンドの前後にパイプラインにdd
を挿入できるようにするために、その情報メッセージは標準出力ではなく標準エラーに書き込まれます。
dd
のOpenBSDマニュアル はこれについて明示的に言及しています(しかし buntuマニュアル はこの事実を省略しているようですが、より完全なinfo
ページで言及しています):
終了すると、
dd
は、標準エラー出力への完全および部分的な入力および出力ブロックと切り捨てられた入力レコードの数を表示します。
コマンドから標準エラーをリダイレクトするには、2>filename
を使用します。標準エラーストリームを切り捨てずに既存のファイルに追加するには、2>>filename
を使用します。
例えば:
dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>dd.txt
最初の例(>>
を使用)の出力の追加と2番目の例(tee
を使用)の出力の切り捨てを混在させていることに注意してください。 tee
を含むファイルに追加するには、tee -a
を使用します。
dd
出力は実際にはstderr
ではなくstdout
に出力されます
次のようにして、stderr
をdd
コマンドのファイルにリダイレクトできます。
$ dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>> /path/to/file