dd

ファイルを変換してコピーする

dd - ファイルを変換してコピーする
dd [--help] [--version] [if= file ] [of= file ] [ibs= bytes ] [obs= bytes ] [bs= bytes ] [cbs= bytes ] [skip= blocks ] [seek= blocks ] [count= blocks ] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]
dd はファイルを指定された入出力ブロックサイズで (デフォルトでは標準入力から標準出力へ) コピーする。 入出力の間に変換を指定することもできる。 dd は指定された入力ブロックサイズ (デフォルトは 512 バイト) で、 一度に 1 ブロックを読み込む。 bs= bytes オプションが指定されていて、 sync , noerror , notrunc 以外の変換が指定されていない場合、 読み込んだ全データ (要求されたサイズより小さくてもよい) を出力ブロックに書き出す。 この出力ブロックは sync 変換が指定されていない限り、 読み込まれたものと正確に同じ長さを持っている。 sync が指定された場合は、 データは NUL またはスペースで埋められる (下記参照)。 それ以外の場合、入力は一度に 1 ブロックずつ読み込まれて処理され、 その結果は出力ブロックサイズに指定された大きさごとに書き出される。 最後の出力ブロックは短くなることがある。 下記の (バイトまたはブロック) といった数値オプションの後ろには、 乗数の項目で挙げる乗数を続けて置くことができる。 x を間に挟んで、このような数値表記を 2 つ以上掛けあわせることもできる。
if= file
標準入力の代わりに、ファイル file から読み込む。
of= file
標準出力の代わりに、ファイル file へ書き出す。 conv=notrunc が与えられない限り、 dd はファイル file を (訳注: コピー前に) 0 バイト (もしくは seek= で指定されたサイズ) に切り詰める。
ibs= bytes
一度に bytes バイトずつ読み込む。デフォルトは 512。
obs= bytes
一度に bytes バイトずつ書き出す。デフォルトは 512。
bs= bytes
一度に bytes バイトずつ読み込みと書き出しをする。 ibsobs より優先される。 (少なくとも sync , noerror , notrunc 以外の変換が指定されていない場合には、 bs の指定は ibsobs の両方をこれと同じ値に設定することと等価ではない。 なぜなら bs では、各入力ブロックが単一の出力ブロックにコピーされる、 すなわち短い複数の入力ブロックをまとめない、 ということが規定されているからである。)
cbs= bytes
blockunblock の変換ブロックサイズを指定する。
skip= blocks
ibs バイトのブロック blocks 個分だけ入力ファイルの先頭をスキップする。
seek= blocks
出力の先頭にある obs バイトのブロック blocks 個分を書き出さない。
count= blocks
入力ファイルの終りまで全てではなく、 ibs バイトのブロック blocks 個分だけ入力ファイルをコピーする。
conv= CONVERSION [, CONVERSION ]...
引き数 CONVERSION で指定されたファイル変換を行う。(コンマの前後にスペースを置かない。) 変換:
ascii
EBCDIC から ASCII に変換する。
ebcdic
ASCII から EBCDIC に変換する。
ibm
ASCII から別の (IBM の) EBCDIC に変換する。
block
入力された各行につき、 cbs バイトずつを出力する。 改行文字は空白文字で置き換え、 必要であれば複数の空白文字を詰める。
unblock
入力された cbs バイトのブロックそれぞれにおいて、 末尾の連続した複数の空白文字を一つの改行文字に変換する。
lcase
大文字を小文字に変換する。
ucase
小文字を大文字に変換する。
swab
入力バイトの全ての (訳註:2バイトずつの) ペアを入れ換える。 GNU dd は他と違い、奇数個のバイトを読み込んだ場合にも動作する。 奇数個の場合、 最後のバイトは (入れ換えるバイトがないので) 単純にコピーされる。
noerror
読み込みエラーが発生しても継続する。
notrunc
出力ファイルを切り詰めない。 (訳注: 書き込み前の切り詰めを行わず、 そのまま先頭バイトから書き込みを行います。 入力ファイルと出力ファイルが同じ場合にファイルが壊れません。)
sync
block または unblock が指定されていなければ、 各入力ブロックに対して、大きさが ibs になるまで連続して NUL (バイト 0) を詰める。 指定されている場合はスペースで詰める。
--help
標準出力に使用方法のメッセージを出力して正常終了する。
--version
標準出力にバージョン情報を出力して正常終了する。
--
オプションリストの終りを示す。
数値の後には、倍数を指定するサイズ指定文字と、 通常のバイトを意味する B または 10 進の「商業用」バイトを意味する D を 続けて置くことができる。 たとえば `1KB' は `1024' と等しく、`1KD' は `1000' と等しい。 この例外は b (512 バイト)、c (1 バイト)、 w (使うべきでない - System V では 2 を意味し、 4.2BSD では 4 を意味する) の 3 つで、 これらの後に B や D をおくことはできない。
k
キロ: 通常バイト指定なら 2^10 = 1024、10 進バイト指定なら 10^3 = 1000
M
メガ: 2^20 = 1,048,576 または 10^6 = 1,000,000
G
ギガ: 2^30 = 1,073,741,824 または 10^9 = 1,000,000,000
T
テラ: 2^40 = 1,099,511,627,776 または 10^12 = 1,000,000,000,000
P
ペタ: 2^50 = 1,125,899,906,842,624 または 10^15 = 1,000,000,000,000,000
E
エクサ: 2^60 = 1,152,921,504,606,846,976 または 10^18 = 1,000,000,000,000,000,000
Z
ゼタ: 2^70 = 1,180,591,620,717,411,303,424 または 10^21 = 1,000,000,000,000,000,000,000
Y
ヨタ: 2^80 = 1,208,925,819,614,629,174,706,176 または 10^24 = 1,000,000,000,000,000,000,000,000
変数 LANG, LC_ALL, LC_CTYPE, LC_MESSAGES が通常の意味を持つ。
POSIX 1003.2
このページは fileutils-4.1 パッケージの dd コマンドについて説明したものである; その他のバージョンでは少し違いがあるかもしれない。 修正や追加は aeb@cwi.nl, aw@mail1.bet1.puv.fi, ragnar@ragnar-hojland.com 宛にメールで連絡してください。 プログラムのバグについては bug-fileutils@gnu.org へ報告してください。