「Dd (UNIX)」の版間の差分

削除された内容 追加された内容
Addbot (会話 | 投稿記録)
m ボット: 言語間リンク 17 件をウィキデータ上の d:q310581 に転記
編集の要約なし
1行目:
{{小文字|title=dd}}
'''dd'''は[[UNIXUnix系]]や[[Linux]]などOS上で[[ファイルシステム]]等のにあるプログラム(コマンド)で、データに直接アクセスを行い、コピーや変換をブロックデバイスを直接読み書きして行うプログラムことが特徴である。dataset definitionの略であるが、[[IBM]]の[[メインフレーム]]の[[Job Control Language|JCL]](ジョブ制御言語、JCL)の「DD文」(DD statement)実装さ由来するため、引数の構文が、Unixの一般的なコマンドの引数のそとは激しく異なっていたプログラムる(datasetというはメインタースを模倣しており、呼称はデータ定義(''dataset definition''ム用語の短縮形である
 
ddの主な機能は指定されたバイト数もしくはブロック数のデータのコピーであり、この機能は、[[ハードディスク]](全体もしくは[[パーティション]]単位、または[[ブートセクター]]等)のバックアップや、[[/dev/zero]]や[[/dev/random]]を用いて指定された領域を[[データの完全消去|完全消去]]するために利用される。同様にディスクの(可能な限り)全状態をそのままクローンしたい、[[コンピュータ・フォレンジックス]]などの場合にも使われる。
 
ddコマンドが行うようなディスクの直接の読み書きには、通常は管理者権限が必要であり、従って危険なコマンドであっても簡単に実行できてしまう状態で作業していることが多い。そしてddは、例えば、入力と出力の指定をうっかり逆にしただけで(具体的には "of" と "if" の、QWERTYキーボードでは隣の1文字の違いである)、大事なデータをバックアップする代わりに、まっさらなディスクの内容をそれに上書きして消してしまう、という恐ろしいことを起こし得る。そのためしばしばベテランは、data destroyer(あるいはdisk destroyer、destroyer=破壊者)の略である、などという。なお、最初に述べたような由来があるので、やはり冗談のはずであるが、copy commandあるいはcopy and convertの略でccにしようとしたが、C言語コンパイラ(ないしコンパイラドライバ)のccがあったのでひとつずらしてddにした、という説もある。
また、犯罪捜査や企業の内部調査のために行われる[[コンピュータ・フォレンジックス]]において、ハードディスク全体を解析用のハードディスクにコピーする作業にもこのプログラムが使われることがある。これは、[[オペレーティングシステム]]で通常用いられる[[cp (UNIX)|cp]]コマンドや、Windows Explorer等の[[ファイルマネージャ]]では、削除痕跡を含む未利用[[セクター]]のデータがコピーできないからである。
 
一部ユーザの間では、ddは''data destroyer''(データ破壊プログラム)であると皮肉を込めて呼ばれている。これは入出力を指定するコマンドライン・スイッチを逆に指定してしまうことで、ハードディスク全体をコピーするのでは無く消去してしまうような結果をもたらしてしまうからである。
 
== コマンドラインに指定できるオプション ==