导航菜单

Linux命令大全-dd命令

陆兴东 2026-06-02 10 浏览 Linux命令

一、简介

dd(英文全拼:disk dump)命令主要功能是用于读取、转化文件并输出数据。它可以从标准输入或指定文件中读取数据,根据指定的格式和条件来转换数据,再输出到指定文件或设备中。

二、语法

语法: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=<关键字>,关键字可以有以下11种:

conversion:用指定的参数转换文件。

ascii:转换ebcdic为ascii

ebcdic:转换ascii为ebcdic

ibm:转换ascii为alternate ebcdic

block:把每一行转换为长度为cbs,不足部分用空格填充

unblock:使每一行的长度都为cbs,不足部分用空格填充

lcase:把大写字符转换为小写字符

ucase:把小写字符转换为大写字符

swap:交换输入的每对字节

noerror:出错时不停止

notrunc:不截短输出文件

sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

--help:显示帮助信息

--version:显示版本信息

三、实战

1、生成一个指定大小的文件

[root@CentOS7 ~]# dd if=/dev/zero of=file.txt count=1 bs=2M
记录了1+0 的读入
记录了1+0 的写出
2097152字节(2.1 MB)已复制,0.00571481 秒,367 MB/秒
[root@CentOS7 ~]# ls -lrth file.txt
-rw-r--r-- 1 root root 2.0M 4月  12 20:06 file.txt

生成了一个2M的文件,如果想生成更大的,把bs后面的数值替换成你想要的大小数值即可,记得加上单位。

2、复制指定文件,并将其小写字母转换成大写字母

[root@CentOS7 ~]# dd if=/root/file1.txt of=file2.txt conv=ucase
记录了0+1 的读入
记录了0+1 的写出
44字节(44 B)已复制,0.000256761 秒,171 kB/秒
[root@CentOS7 ~]# cat file1.txt
This is a test file.
Linux testHELLO LINUX
[root@CentOS7 ~]# cat file2.txt
THIS IS A TEST FILE.
LINUX TEST
HELLO LINUX

3、复制指定文件多少个字节

[root@CentOS7 ~]# dd if=/root/file1.txt of=file3.txt count=1 bs=10
记录了1+0 的读入
记录了1+0 的写出
10字节(10 B)已复制,0.000290701 秒,34.4 kB/秒

4、标准输入小写字符串,转换成大写,再标准输出

[root@CentOS7 ~]# dd conv=ucase
this is a test file.
THIS IS A TEST FILE.
记录了0+1 的读入
记录了0+1 的写出
21字节(21 B)已复制,12.1338 秒,0.0 kB/秒

输入以上命令后按回车键,再输入字符串,再按回车键,按组合键Ctrl+D 退出即可。

5、制作启动盘

[root@CentOS7 ~]# dd if=ubuntu.iso of=/dev/sdc bs=4M

注:of=/dev/sdc是指制作启动盘的目标设备,并不是指本机上的硬盘,这里的sdc会根据主机的磁盘个数会发生变化,以实际为准。

警告

目标设备 (of=) 会无条件覆盖:dd 不会询问“是否确认”,一旦执行,数据立刻被覆盖,很难恢复。

源与目标混淆:弄反 if 和 of 会导致目标数据被源覆盖,可能清空源数据。

设备名确认:务必确认设备名(如 /dev/sda, /dev/sdb)是否正确。一个字母之差,就可能把系统盘或存有重要数据的硬盘清空。

执行前检查:在按回车之前,建议先不加 of 参数,或使用 lsblk、fdisk -l 等命令仔细核对设备路径。