Linux 中的 dd 命令可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
dd 命令主要用来进行数据备份,并且可以在备份的过程中进行格式转换。其实 dd 命令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘还是光盘,都可以进行数据备份。
用于读取、转换并输出数据。
dd if="inputFile" of="outputFile" bs="blockSize" count="cnt"
参数 | 描述 |
---|---|
inputFile | 输入文件。 |
outputFile | 输出文件。 |
blockSize | 数据块。 |
cnt | 数量。 |
选项 | 含义 |
---|---|
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=<关键字> | 指定关键字。 |
关键字 | 描述 |
---|---|
conversion | 用指定的参数转换文件。 |
ascii | 转换 ebcdic 为 ascii。 |
ebcdic | 转换 ascii 为 ebcdic。 |
ibm | 转换 ascii 为 alternate ebcdic。 |
block | 把每一行转换为长度为 cbs,不足部分用空格填充。 |
unblock | 使每一行的长度都为 cbs,不足部分用空格填充。 |
lcase | 把大写字符转换为小写字符。 |
ucase | 把小写字符转换为大写字符。 |
swab | 交换输入的每对字节。 |
noerror | 出错时不停止。 |
notrunc | 不截断输出文件。 |
sync | 将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。。 |
conversion | 用指定的参数转换文件。 |
实例 | 描述 |
---|---|
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
运行后,终端输出如下:
现在,我们使用 ls 命令,查看该文件大小,具体命令如下:
ls -lh haicoder.txt
运行后,终端输出如下:
我们看到,此文件的大小为 1000M。
Linux 中的 dd 命令可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
dd 命令主要用来进行数据备份,并且可以在备份的过程中进行格式转换。其实 dd 命令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘还是光盘,都可以进行数据备份。