dd コマンドは、データのコピーや変換を行うためのコマンドで、AT&T UNIX Version 5 に登場しました。このコマンドは特に低レベルのデータ操作やディスクのバックアップ、リストア、データ変換に広く使用されています。

基本的な使い方

編集
dd if=入力ファイル of=出力ファイル [オプション]

主なオプション(GNU coreutils版)

編集
主なオプション
オプション 説明
if=ファイル 入力ファイルを指定(標準入力の場合は省略可能)
of=ファイル 出力ファイルを指定(標準出力の場合は省略可能)
bs=バイト数 ブロックサイズを指定(デフォルトは512バイト)
count=数 コピーするブロックの数を指定
skip=数 入力ファイルの最初の指定された数のブロックをスキップ
seek=数 出力ファイルの最初の指定された数のブロックをスキップ
conv=変換オプション データの変換(例:notruncsync

ファイルのコピー

編集
dd if=input.txt of=output.txt

input.txtoutput.txt にコピーします。

バイト単位でコピー

編集
dd if=input.txt of=output.txt bs=1M

ブロックサイズを1MBに設定してファイルをコピーします。

ディスクのバックアップ

編集
dd if=/dev/sda of=/dev/sdb bs=64K

/dev/sda(ソースディスク)の内容を /dev/sdb(ターゲットディスク)にバックアップします。

データの変換

編集
dd if=input.txt of=output.txt conv=ucase

input.txt の内容を大文字に変換して output.txt に保存します。

FreeBSD 版との違い

編集

FreeBSD でも dd コマンドは提供されていますが、GNU coreutils 版とほとんど同じです。

主な違い:

編集
  1. FreeBSD 版では、dd コマンドは基本的にGNU版と同様に機能しますが、細かい動作やエラーメッセージの表現が異なることがあります。
  2. 一部のオプション(例:--status-interval など)は FreeBSD 版ではサポートされていない場合があります。
  3. GNU版と同様、FreeBSDでもブロックサイズの調整やデータ変換が可能です。

詳しくは、それぞれの環境で man dd を確認してください。