名前 | 形式 | 機能説明 | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 診断 | 注意事項
/usr/bin/dd [operand=value]...
dd は、指定した入力ファイルに可能な変換を行なって、指定した出力へコピーします。デフォルトでは、標準入力および標準出力が使用されます。raw 入出力装置の特性を利用するために入出力のブロックサイズで指定することが可能です。サイズは、バイト単位で指定し、数字の後に k、b、または w を付加することができ、それぞれ 1024、512、または 2 の倍数として指定します。また、数字を x で区切ることにより乗算を表すことができます。
dd は、指定された入力ブロックサイズを用いて、入力データを 1 ブロックずつ読み込みます。その後、実際に渡されたデータブロックを処理します。そのサイズは、指定されたブロックサイズより小さい場合があります。dd は指定された変換処理をブロックに対して行い、結果のデータを、指定された出力ブロックサイズに従ってブロック単位で書き出します。
cbs は、ascii、asciib、unblock、ebcdic、ebcdicb、ibm、ibmb、または block 変換が指定されている場合にかぎり使用されます。最初の 2 つの指定では、cbs 文字は変換バッファにコピーされ、任意の指定文字のマッピングが行われます。また後続の空白文字は切り捨てられ、行を送信する前に復帰改行が追加されます。残りの 3 つの指定では、復帰改行までの文字が変換バッファに読み込まれ、サイズ cbs の出力レコードを構成するために空白文字が追加されます。ASCII ファイルは復帰改行文字を含むものとします。cbs が指定されていないかまたは 0 であると、ascii、asciib、ebcdic、ebcdicb、ibm、ibmb の各オプションは入力ファイルのブロック構造を変更せずに文字セットを変換します。unblock および block の各オプションは単純なファイルコピーを行います。
終了後に、dd は全体および部分的な入出力ブロック数を報告します。
以下のオペランドが指定できます。
入力パス名。デフォルトは標準入力です。
出力パス名。デフォルトは標準出力です。seek=expr 変換が指定されていないとき、conv=notrunc も指定されていなければ、コピー処理の実行前に出力ファイルは切り捨てられます。seek=expr が指定され、conv=notrunc が指定されていなければ、コピー処理の結果としては dd がシークする出力ファイル中のブロックは保持されますが、出力ファイルのその他の部分は保持されません。シークするサイズと入力ファイルのサイズの合計が出力ファイルの元のサイズより小さい場合、コピー処理により出力ファイルは小さくなります。
入力ブロックサイズを n バイトとします。デフォルト値は 512 です。
出力ブロックサイズを n バイトとします。デフォルト値は 512 です。
入力ブロックサイズと出力ブロックサイズをともに n バイトとします。この指定は ibs= と obs= 指定よりも優先されます。sync、noerror、notrunc 以外の変換が 1 つも指定されない場合、各入力ブロックは複数の短いブロックを 1 つにまとめる処理は行われず、それぞれ単独のブロックとして出力側にコピーされます。
block と unblock 用の変換ブロックサイズを n バイトに指定します。デフォルト値は 0 です。cbs= を指定しないかまたは 0 を指定した場合、block や unblock を使うと結果は予測できません。
このオプションは ASCII または EBCDIC 変換を指定した場合にだけ有効です。ascii と asciib オペランドを指定した場合、後続の空白文字を消去する前に文字が ASCII に変換されるという点を除き、入力処理は unblock オペランド指定時と同じです。ebcdic、ebcdicb、ibm、または ibmb オペランドを指定した場合、後方に空白文字を追加した後で文字が EBCDIC または IBM EBCDICに変換されるという点を除き、入力処理は block オペランド指定時と同じです。
終了する前に、n 個の入力ファイルをコピーして連結します (入力が磁気テープまたは同様な装置の場合だけ有効です)。
コピーを開始する前に、指定された入力ブロックサイズを用いて n 個の入力ブロックを読み飛ばします。シーク可能なファイルに対しては、システムはそれらのブロックを読み込むか、あるいはシークを行います。シーク不可能なファイルに対しては、ブロックを読み込んで、そのデータを捨てます。
コピーを行う前に、入力ファイルの先頭から n 個のブロックをシークします (skip の動作が遅いディスクファイルに適しています)。
コピーを行う前に、出力ファイルの先頭から n 個のブロックをシークします。
コピーを行う前に、出力ファイルの先頭から n 個のブロックをスキップします (指定された出力ブロックサイズを使用)。シーク不可能なファイルに対しては、既存のブロックを読み込み、現在のファイルの終わり位置から指定されたオフセット位置までの間に空白があれば、その空白を NULL バイトで埋めます。シーク可能なファイルに対しては、指定されたオフセット位置までをシークするか、またはシーク不可能なファイルの場合と同様にブロックを読み込みます。
n 個の入力ブロックだけをコピーします。
1 つ以上の value をコンマで区切って記述します。各 value は以下のいずれかです。
EBCDIC を ASCII に変換します。
BSD 互換の文字変換を使用して、EBCDIC を ASCII に変換します。
ASCII を EBCDIC に変換します。復帰改行のない固定長の ASCII レコードを変換する場合は、前もって dd conv=unblock でパイプラインを整えてください。
BSD 互換の文字変換を使用して、ASCII を EBCDIC に変換します。復帰改行のない固定長の ASCII レコードを変換する場合は、前もって dd conv=unblock でパイプラインを整えてください。
ASCII から EBCDIC への変換とわずかに異なるマップを使用します。復帰改行のない固定長の ASCII レコードを変換する場合は、前もって dd conv=unblock でパイプラインを整えてください。
BSD 互換の文字変換を使用してASCII から EBCDIC への変換とわずかに異なるマップを使用します。復帰改行のない固定長の ASCII レコードを変換する場合は、前もって dd conv=unblock でパイプラインを整えてください。
ascii (または asciib)、ebcdic (または ebcdicb)、ibm (または ibmb) のうち 2 つ以上を同時に指定することはできません。
入力データを、入力ブロック境界に関係なく、復帰改行文字もしくは EOF で終わる可変長レコードの集まりと見なします。各レコードは、変換ブロックサイズで指定した長さの固定長レコードに変換されます。入力行に復帰改行文字があれば削除されます。変換ブロックサイズより短い行に関しては、ブロックを埋めるために空白文字が付加されます。変換ブロックサイズより長い行に関しては、ブロックサイズを満たす最大長になるように文字が捨てられます。切り捨てられた行の総数が報告されます。
固定長のレコードを可変長に変換します。変換ブロックサイズと等しい長さ分のバイト (それより短いデータしか残っていなければそのすべて) を読み込み、後続の空白文字を削除して、復帰改行文字を付加します。
block と unblock を同時に指定することはできません。
LC_CTYPE カテゴリ中のキーワードの tolower で指定された大文字を、対応する小文字にマップします。マッピングを指定されなかった文字は、この変換によって変更されることはありません。
LC_CTYPE カテゴリ中のキーワードの toupper で指定された小文字を、対応する大文字にマップします。マッピングを指定されなかった文字は、この変換によって変更されることはありません。
lcase と ucase を同時に指定することはできません。
入力データを 2 バイトずつの対になっているものとし、各々の対についてバイトの値を交換します。入力レコードの長さが奇数バイトの場合には、最終バイトは無視されます。
入力エラーが発生しても処理を停止しません。入力エラーが起こると、標準エラー出力に診断メッセージと、入力および出力ブロック数が出力されます。ブロック数の形式は、正常に終了したときに出力されるものと同じです。sync 変換が指定されたときは、入力データのうち得られなかったバイトは NULL バイトに置き換えられて通常どおりに処理されます。sync が指定されなければ、入力ブロックは出力上には現れません。
出力ファイルを切り捨てません。今回の dd 呼び出しで明示的に書き出されなかったブロックも出力ファイル中に保持します (前述の of=file オペランドの説明を参照)。
入力ブロックに NULL バイトを付加して、サイズが ibs= で指定した値に等しくなるようにします。なお block または unblock も指定されている場合には、NULL バイトの代わりに空白文字を付加します。
conv= 以外のオペランドが複数回指定されたときは、最後に記述された operand=value が有効となります。
bs=、cbs=、ibs=、obs= に関しては、バイト単位でサイズを指定する式をアプリケーション側で提供しなければなりません。式 expr は以下のいずれかです。
正の 10 進数。
正の 10 進数の後に 1024 倍を示す k を付加したもの。
正の 10 進数の後に 512 倍を示す b を付加したもの。
2 つ以上の正の 10 進数 (k や b を付加してもしなくてもよい) を文字 x で区切ったもの。その 2 つの値を乗算した結果を表す。
オペランドはすべて、入力データを読み込む前に処理されます。
ファイルが 2G バイト ( 231 バイト) 以上ある場合の dd の動作については、largefile(5) を参照してください。
次のコマンドは、標準的なデバイス命名規約を用いて、テープドライブ 0 から 1 へコピーします。
example% dd if=/dev/rmt/0h of=/dev/rmt/1h |
次のコマンドは、標準入力の先頭の 10 バイトを削除します。
example% dd ibs=10 skip=1 |
次のコマンドは、テープブロックごとに 10 個の 80 バイト EBCDIC カードイメージにブロック化した EBCDIC テープを ASCII ファイル x に読み込みます。
example% dd if=/dev/tape of=x ibs=800 cbs=80 conv=ascii,lcase |
次のコマンドは、テープに書き込む場合に conv=sync を使用する例です。
example% tar cvf - . | compress | dd obs=1024k of=/dev/rmt/0 conv=sync |
dd の実行に影響を与える環境変数 LC_CTYPE、LC_MESSAGES、NLSPATH についての詳細は、environ(5) を参照してください。
以下の終了ステータスが返されます。
ファイルは正常にコピーされた
エラーが発生した
noerror 変換が指定されていないときに入力エラーが発生すると、部分的に生成された出力ブロックがあればそれを出力ファイルに書き出し、診断メッセージを出力し、コピー処理を中止します。その他のエラーを検出した場合には、診断メッセージを出力し、コピー処理を中止します。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWcsu |
ブロックサイズが異なるファイルシステム間でファイルのコピーを行う場合には、dd を使用しないでください。
ファイルをコピーするのにブロック型デバイスを使用すると、最終ブロックをブロック境界にあわせるために余分な NULL バイトがファイルに追加されます。
dd が ibs=X および obs=Y オペランドを用いてパイプから読み取ると、その出力はつねにサイズ Y の固まりでブロック化されます。bs=Z が使用されると、出力ブロックはその時点でパイプから読み取ることができる大きさになります。
dd を使用してテープデバイスにファイルをコピーする場合、ファイルのサイズはデバイスのセクタサイズ (たとえば 512K) の倍数でなければなりません。任意のサイズのファイルをテープデバイスにコピーする場合は、tar(1) または cpio(1) を使用してください。
SIGINT が発生した場合、dd はステータス情報を標準エラー出力に書き出して処理を終了します。その他のシグナル発生時には、標準的な動作を行います。
名前 | 形式 | 機能説明 | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 診断 | 注意事項