Next: , Previous: cp invocation, Up: 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
コピーする前に入力ファイルで,blocksibs’バイトブロックを 読み飛ばします.
seek=blocks
コピーする前に出力ファイルで,blocksibs’バイトブロックを 読み飛ばします.
count=blocks
ファイルの終りまでのすべてではなく,入力ファイルからblocksibs’バイトブロックコピーします.
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’を使用するとき,ゼロバイトの代わり にスペースで埋め込みます.

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