Linux dd命令详解

Linux dd命令详解教程

Linux 中的 dd 命令可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

dd 命令主要用来进行数据备份,并且可以在备份的过程中进行格式转换。其实 dd 命令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘还是光盘,都可以进行数据备份。

Linux dd命令详解

功能

用于读取、转换并输出数据。

语法

dd if="inputFile" of="outputFile" bs="blockSize" count="cnt"

参数

参数 描述
inputFile 输入文件。
outputFile 输出文件。
blockSize 数据块。
cnt 数量。

dd命令常用参数

选项 含义
if=文件名 输入文件名,默认为标准输入。即指定源文件。
of=文件名 输出文件名,默认为标准输出。即指定目的文件。
ibs=bytes 一次读入 bytes 个字节,即指定一个块大小为 bytes 个字节。
obs=bytes 一次输出 bytes 个字节,即指定一个块大小为 bytes 个字节。
bs=bytes 同时设置读入/输出的块大小为 bytes 个字节。
cbs=bytes 一次转换 bytes 个字节,即指定转换缓冲区大小。
skip=blocks 从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks 从输出文件开头跳过 blocks 个块后再开始复制。
count=blocks 仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
conv=<关键字> 指定关键字。

dd命令conv关键字

关键字 描述
conversion 用指定的参数转换文件。
ascii 转换 ebcdic 为 ascii。
ebcdic 转换 ascii 为 ebcdic。
ibm 转换 ascii 为 alternate ebcdic。
block 把每一行转换为长度为 cbs,不足部分用空格填充。
unblock 使每一行的长度都为 cbs,不足部分用空格填充。
lcase 把大写字符转换为小写字符。
ucase 把小写字符转换为大写字符。
swab 交换输入的每对字节。
noerror 出错时不停止。
notrunc 不截断输出文件。
sync 将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。。
conversion 用指定的参数转换文件。

Linux dd命令常用实例

实例

实例 描述
dd if=/dev/hdb of=/dev/hdd 将本地的 /dev/hdb 整盘备份到 /dev/hdd。
dd if=/dev/hdb of=/root/image 将 /dev/hdb 全盘数据备份到指定路径的 image 文件。
dd if=/root/image of=/dev/hdb 将备份文件恢复到指定盘。
dd if=/dev/hdb gzip > /root/image.gz
gzip -dc /root/image.gz dd of=/dev/hdb
dd if=/dev/hda of=/root/image count=1 bs=512 备份磁盘开始的 512 个字节大小的 MBR 信息到指定文件,count=1 指仅拷贝一个块;bs=512 指块大小为 512 个字节。
dd if=/dev/fd0 of=disk.img count=1 bs=1440k 备份软盘。
dd if=/dev/mem of=/root/mem.bin bs=1024 拷贝内存内容到硬盘。
dd if=/dev/cdrom(hdc) of=/root/cd.iso 拷贝光盘内容到指定文件夹,并保存为 cd.iso 文件。
dd if=/dev/zero of=test bs=1M count=1000 快速生成大文件。

快速生成大文件

语法

dd if=/dev/zero of=test bs=1M count=1000

案例

我们使用 dump 命令,可以快速生成一个大文件,具体命令如下:

dd if=/dev/zero of=haicoder.txt bs=1M count=1000

运行后,终端输出如下:

05_Linux dd命令详解.png

现在,我们使用 ls 命令,查看该文件大小,具体命令如下:

ls -lh haicoder.txt

运行后,终端输出如下:

06_Linux dd命令详解.png

我们看到,此文件的大小为 1000M。

Linux dd命令详解总结

Linux 中的 dd 命令可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

dd 命令主要用来进行数据备份,并且可以在备份的过程中进行格式转换。其实 dd 命令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘还是光盘,都可以进行数据备份。