次: , 前: cp invocation, 上: Basic operations


11.2 dd: ファイルの変換とコピー

ddは,変更可能なI/Oブロックサイズを用いて,(デフォルトで,標 準入力から標準出力に)ファイルをコピーし,オプションの動作でそれを変更 します.概要です.

     dd [option]...

プログラムは,以下のオプションも受け入れます.Common optionsも参 照してください.

以下の(bytesblocks)数値的な値のオプションを続けて倍数に することが可能です.それは,`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'が与え られていない場合,ddfileをゼロバイト(または, `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'
EBCDICASCIIに変換します.
`ebcdic'
ASCIIEBCDICに変換します.
`ibm'
ASCIIを別のEBCDICに変換します.
`block'
入力のそれぞれの行に対し,入力の改行をスペースに置換し,必要なスペース を埋め込みながら,`cbs'バイト出力します.
`unblock'
それぞれの`cbs'の大きさの入力ブロックで,末尾のスペースを改行に置 換します.
`lcase'
大文字を小文字に変換します.
`ucase'
小文字を大文字に変換します.
`swab'
入力バイトのすべての組を入れ替えます.gnu ddは他と異な り,偶数バイトを読み込んだとき動作します — 最後のバイトは,単にコピー されます.(入れ替えるバイトがないからです).
`noerror'
読み込みエラー後も続けます.
`notrunc'
出力ファイルを切り詰めません.
`sync'
すべての入力ブロックを,後置するゼロバイトを埋め込み`ibs'サイズに します.`block'や`unblock'を使用するとき,ゼロバイトの代わり にスペースで埋め込みます.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.