GNU Core Utilities/dd
dd
コマンドは、データのコピーや変換を行うためのコマンドで、AT&T UNIX Version 5 に登場しました。このコマンドは特に低レベルのデータ操作やディスクのバックアップ、リストア、データ変換に広く使用されています。
基本的な使い方
編集dd if=入力ファイル of=出力ファイル [オプション]
主なオプション(GNU coreutils版)
編集主なオプション オプション 説明 if=ファイル
入力ファイルを指定(標準入力の場合は省略可能) of=ファイル
出力ファイルを指定(標準出力の場合は省略可能) bs=バイト数
ブロックサイズを指定(デフォルトは512バイト) count=数
コピーするブロックの数を指定 skip=数
入力ファイルの最初の指定された数のブロックをスキップ seek=数
出力ファイルの最初の指定された数のブロックをスキップ conv=変換オプション
データの変換(例: notrunc
、sync
)
例
編集ファイルのコピー
編集dd if=input.txt of=output.txt
input.txt
を output.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 版とほとんど同じです。
主な違い:
編集- FreeBSD 版では、
dd
コマンドは基本的にGNU版と同様に機能しますが、細かい動作やエラーメッセージの表現が異なることがあります。 - 一部のオプション(例:
--status-interval
など)は FreeBSD 版ではサポートされていない場合があります。 - GNU版と同様、FreeBSDでもブロックサイズの調整やデータ変換が可能です。
詳しくは、それぞれの環境で man dd
を確認してください。