dd(1) FreeBSD 一般コマンドマニュアル

dd

前のページ 上に戻る 次のページ

dd




解説

     dd ユーティリティは、標準入力を標準出力にコピーします。入力データはブロッ
     ク単位 (デフォルトでは 512 バイト) で読み書きされます。入力データのブロッ
     ク数が短かった場合は、何回か読み込みを行い、ブロック数単位にまとめて出力
     します。終了時に、 dd は、入力と出力の各々について、ブロック単位で処理で
     きたブロック数と最終ブロックを満たさず半端になったブロック数を標準エラー
     出力に表示します。ブロック単位の変換で切り捨てられた入力レコードがあった
     場合には、そのブロック数も表示します。

     以下のオペランドが利用可能です:

     bs=n     入出力両方のブロックサイズを n バイトに設定します。 ibs, obs の
              指定に優先します。 noerror, notrunc, sync 以外の変換指定がない場
              合は、入力ブロック数が小さい場合のまとめ処理なしで入力ブロックを
              出力ブロックに 1 ブロック単位でコピーします。

     cbs=n    変換レコードサイズを n バイトにします。レコード指向の変換が指定
              された場合には変換レコードサイズが必要です。

     count=n  入力のうち n 個のブロックだけをコピーします。

     files=n  n 個の入力ファイルをコピーします。このオペランドは入力デバイスが
              テープのときだけ有効です。

     ibs=n    入力ブロックのサイズを、デフォルトの 512 バイトに代えて n バイト
              にします。

     if=file  標準入力のかわりに file から入力を行います。

     iseek=n  入力ファイルの n ブロック目にシークします。 skip=n と同じです。

     obs=n    出力ブロックのサイズをデフォルトの 512 バイトに代えて n バイトに
              します。

     of=file  標準出力のかわりに file に対し出力を行います。 notrunc が指定さ
              れないかぎり、普通の出力ファイルでは最後の 1 ブロックサイズに満
              たないデータは切り詰められます。出力ファイルの最初の部分がシーク
              されて通り過ぎる場合は ( oseek オペランド参照) 出力ファイルは そ
              こまで切り詰められます。

     oseek=n  出力ファイルの n ブロック目にシークします。 seek=n と同じです。

     seek=n   コピーする前に、出力側ファイルの開始位置を先頭から n ブロックだ
              け進めます。出力がテープデバイスでない場合は、 lseek(2) システム
              コールを使ってシークが実行されます。テープデバイスの場合は、既存
              のブロックを読み捨てる事で指定位置まで進める処理を実行します。も
              しユーザがテープデバイスに対し読み込みのアクセス権を持っていない
              ときは、テープデバイスに対する ioctl(2) システムコールを使いま
              す。シーク処理がファイルの最後を超えて行われる場合は、ファイルの
              末尾から指定のシーク位置に相当する部分まで NUL データのブロック
              を挿入します。
              ascii, oldascii
                       レコードの変換を行う前に EBCDIC から ASCII への文字コー
                       ド変換を行います。そのほかは unblock と同じです。 (これ
                       らの指定では cbs も指定されている場合は暗黙の内に
                       unblock も指定された事になります。) ASCII 用に 2 つの変
                       換マップがあります。 ascii は System V 互換の お奨め変
                       換マップです。 oldascii は昔の AT&T および
                       pre-4.3BSD-Reno システムで使われていた変換マップです。

              block    入出力のブロック境界に関係なく、入力を newline (改行)
                       もしくは end-of-file (ファイル末) で区切られる可変長レ
                       コード列として扱います。各入力レコードは cbs で指定する
                       長さの固定長レコードに変換されます。変換するレコード・
                       サイズより短い入力レコードは space (空白) でパディング
                       されます。変換するレコード・サイズより長い入力レコード
                       は長い部分が切り捨てられます。切り捨てがあった入力レコ
                       ード数は、もしあれば、コピーの終了時に標準エラー出力に
                       表示されます。

              ebcdic, ibm, oldebcdic, oldibm
                       レコードが変換された後で ASCII から EBCDIC への変換を行
                       う以外は block と同じです。 (これらの指定では cbs も指
                       定されている場合は暗黙の内に block も指定された事になり
                       ます。) EBCDIC 用に 4 つの変換マップがあります。 ebcdic
                       は AT&T System V UNIX 互換の お奨め変換マップです。 ibm
                       は微妙に違う変換マップで、 AT&T System V UNIX で変換に
                       ibm を指定した場合に相当します。 oldebcdicoldibm
                       は、昔の AT&T および pre-4.3BSD-Reno システムで使われて
                       いた変換マップです。

              lcase    英大文字を小文字に変換します。

              noerror  入力にエラーがあっても処理を止めないようにします。入力
                       エラーが起こったときは、診断メッセージに続けて その時の
                       入力と出力のブロック数を、正常動作終了時に表示するメッ
                       セージと同じフォーマットで標準エラー出力に表示します。
                       もし sync 変換も指定されていた場合は、入力データのうち
                       失われた物を NUL バイト (ブロック指向の変換のときは
                       space) に置き換えて、通常の入力バッファとして処理しま
                       す。 sync 変換が指定されていなければ、その入力ブロック
                       は出力から削除されます。テープかパイプ以外の入力ファイ
                       ルでは、ファイル・オフセットは lseek(2) を使ってエラー
                       の発生したブロック以降にも設定されます。

              notrunc  出力ファイルを切り詰めません。これによって出力ファイル
                       のブロックの内で明らかに dd によって書き込まれる部分以
                       外は保存されます。 notrunc はテープではサポートされませ
                       ん。

              osync    最後の出力ブロックを出力ブロックサイズを満たすようにパ
                       ディングします。もし変換後に入力ファイルが出力ブロック
                       サイズの整数倍でなかった場合に、書き込む際に一定サイズ
                       ングします。パディングには、ブロック指向の変換の場合は
                       空白を、そうでなければ NUL バイトを使います。

              ucase    英小文字を大文字に変換します。

              unblock  入出力のブロック境界に関係なく、入力を固定長レコード列
                       として扱います。入力レコードの長さは cbs オペランドで指
                       定します。データの後ろにパディングされている space を除
                       去して newline をつけます。

     サイズの指定は 10 進・ 8 進・ 16 進のバイト数が期待されます。数字の最後に
     ``b'', ``k'', ``m'', ``g'', ``w'' をつけた場合、その数字に、 512, 1024
     (1K), 1048576 (1M), 1073741824 (1G), integer (整数) に格納されるバイト数
     が、それぞれ乗ぜられます。 2 つ以上の数字を ``x'' でつないだ物を積の意味
     で使用できます。

     終了時に、 dd は、きちんともしくは部分的に入出力を行ったブロックの数、切
     り詰められた入力レコードの数、奇数長のバイト入れ換えを行ったブロックの数
     を標準エラー出力に表示します。部分的入力ブロックとは、入力ブロックサイズ
     より少なく読まれた物のことです。部分出力ブロックとは、出力ブロックサイズ
     より少なく書かれた物のことです。テープデバイスで部分出力ブロックが出た場
     合は致命的なエラーとみなされます。それ以外の場合は、そのブロックの残りが
     書かれます。キャラクタ・デバイスで部分出力ブロックが出た場合は警告メッセ
     ージが出ます。切り詰められた入力ブロックとは、可変長レコード指向の変換が
     指定され入力行が変換レコードに合わせるには長すぎるか newline で終っていな
     い場合の物です。

     通常、入力または変換の もしくは両方の結果のデータは指定されたサイズの出力
     ブロックに集められます。入力データが最後に達した場合、残っている出力デー
     タはブロックとして出力されます。これは、最後の出力ブロックのサイズは出力
     ブロックサイズより短くなる可能性がある事を意味します。

     dd が SIGINFO ( stty(1) の引数 ``status'' 参照) シグナルを受けた場合、そ
     の時点の入出力ブロック数を標準エラー出力に通常の処理完了時と同じフォー
     マットで出力します。 dd が SIGINT シグナルを受けた場合、その時点の入出力
     ブロック数を標準エラー出力に通常の処理完了時と同じフォーマットで出力して
     dd は終了します。


診断

     ユーティリティ dd は、成功すると 0 で、エラーがあった場合は >0 で終了しま
     す。


関連項目

     cp(1), mt(1), tr(1)


規格

     dd ユーティリティは IEEE Std 1003.2 (``POSIX.2'') 規格のスーパセットで
     す。 files オペランドおよび、 ascii, ebcdic, ibm, oldascii, oldebcdic,
     oldibm は POSIX 規格を拡張しています。

FreeBSD 4.4                    January 13, 1994                    FreeBSD 4.4

ABELNET VPSサービス