11.2 dd: ファイルの変換とコピー
ddは,変更可能なI/Oブロックサイズを用いて,(デフォルトで,標
準入力から標準出力に)ファイルをコピーし,オプションの動作でそれを変更
します.概要です.
dd [option]...
プログラムは,以下のオプションも受け入れます.Common optionsも参
照してください.
以下の(bytesとblocks)数値的な値のオプションを続けて倍数に
することが可能です.それは,‘b’=512,‘c’=1,‘w’=2,
‘xm’=m,または‘k’=1024のようなあらゆるブロックサ
イズ接尾子です(see Block size).
スキップとI/Oに対し異なるブロックサイズを使用するためは,dd
の呼び出しを別々に行なってください.例えば,以下のシェルコマンドでは,
ディスクとテープの間で512kBブロックでデータをコピーしますが,ディスク
の最初の4kBのラベルは,保存されたり復元されたりしません.
disk=/dev/rdsk/c0t1d0s2
tape=/dev/rmt/0
# Copy all but the label from disk to tape.
(dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape
# Copy from tape back to disk, but leave the disk label alone.
(dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk
‘SIGUSR1’シグナルを実行中のddに送ることで,標準エラー出
力にレコード番号を出力し,そのまま続けて書き込み,コピーを再開します.
以下の例では,ddを10Mブロックをコピーする処理をバックグラン
ドで実行しています.killコマンドで,直前のレコード数の最初の
組を出力し,ddが終了したとき最後の組を出力します.
$ dd if=/dev/zero of=/dev/null count=10M & pid=$!
$ kill -USR1 $pid; sleep 99
5403604+0 records in
5403604+0 records out
10485760+0 records in
10485760+0 records out
- ‘if=file’
-
標準入力の代わりにfileから読み込みます.
- ‘of=file’
-
標準出力の代わりにfileに書き出します.‘conv=notrunc’が与え
られていない場合,ddはfileをゼロバイト(または,
‘seek=’で指定されたサイズ)に切り詰めます.
- ‘ibs=bytes’
-
一度にbytesバイト読み込みます.
- ‘obs=bytes’
-
一度にbytesバイト書き出します.
- ‘bs=bytes’
-
一度にbytesバイト読み書きします.これは‘ibs’と‘obs’に
優先します.
- ‘cbs=bytes’
-
一度にbytesバイト変換します.
- ‘skip=blocks’
-
コピーする前に入力ファイルで,blocks ‘ibs’バイトブロックを
読み飛ばします.
- ‘seek=blocks’
-
コピーする前に出力ファイルで,blocks ‘ibs’バイトブロックを
読み飛ばします.
- ‘count=blocks’
-
ファイルの終りまでのすべてではなく,入力ファイルからblocks
‘ibs’バイトブロックコピーします.
- ‘conv=conversion[,conversion]...’
-
conversion引数で指定されたようにファイルを変換します.(カンマの
回りにスペースはありません.)
以下の変換です.
- ‘ascii’
-
EBCDICをASCIIに変換します.
- ‘ebcdic’
-
ASCIIをEBCDICに変換します.
- ‘ibm’
-
ASCIIを別のEBCDICに変換します.
- ‘block’
-
入力のそれぞれの行に対し,入力の改行をスペースに置換し,必要なスペース
を埋め込みながら,‘cbs’バイト出力します.
- ‘unblock’
-
それぞれの‘cbs’の大きさの入力ブロックで,末尾のスペースを改行に置
換します.
- ‘lcase’
-
大文字を小文字に変換します.
- ‘ucase’
-
小文字を大文字に変換します.
- ‘swab’
-
入力バイトのすべての組を入れ替えます.gnu ddは他と異な
り,偶数バイトを読み込んだとき動作します — 最後のバイトは,単にコピー
されます.(入れ替えるバイトがないからです).
- ‘noerror’
-
読み込みエラー後も続けます.
- ‘notrunc’
-
出力ファイルを切り詰めません.
- ‘sync’
-
すべての入力ブロックを,後置するゼロバイトを埋め込み‘ibs’サイズに
します.‘block’や‘unblock’を使用するとき,ゼロバイトの代わり
にスペースで埋め込みます.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.