Linux命令dd

目录

1. 介绍

2. 命令行选项与参数详解

3. 应用场景

4. 注意事项


1. 介绍

Linux dd 命令用于读取、转换并输出数据。

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

2. 命令行选项与参数详解

dd if=input_file of=output_file [options]

参数说明:

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:显示版本信息

3. 应用场景

   3.1 硬盘的备份和还原
dd if=/dev/sda of=/path/to/backup.img

将整个硬盘 /dev/sda 的内容复制到文件 backup.img 中,完成对硬盘sda的备份。如果sda故障,可通过back.img恢复文件。

dd if=/path/to/backup.img of=/dev/sda

支持整盘备份,也支持分区备份,比如将sda替换成sda1。

3.2 硬盘写0

dd if=/dev/zero of=/dev/sdb

擦除硬盘/dev/sdb上的所有数据,将每个块都写入零值,达到保护隐私或者重新使用硬盘的目的。

3.3 创建指定大小的文件
# 创建1G大小的文件。
dd if=/dev/zero of=/tmp/1G.txt bs=1M count=1024

# 使用 /dev/urandom 生成的随机数据创建一个大小为10MB的文件 random.file
dd if=/dev/urandom of=/path/to/random.file bs=1M count=10
   3.4 制作系统启动盘
dd if=boot.img of=/dev/sdc4 bs=1440k 

比如将ISO文件写入U盘,再通过U盘安装操作系统。

3.5 文件内所有字母转换成大写

dd if=testfile_2 of=testfile_1 conv=ucase

将testfile_2内的字母转换成大写并写入到文件testfile_1。

3.6 修复损坏的分区表

dd if=/dev/sda of=/path/to/parttable.backup bs=512 count=1

dd if=/path/to/parttable.backup of=/dev/sda bs=512 count=1

同第1点,通过备份恢复方式恢复数据。

3.7 从网络流复制数据

dd if=tcp://192.168.0.100:1234 of=/path/to/output.file bs=1M

3.8 压缩文件到tar归档

tar cf - /path/to/files | dd of=/path/to/archive.tar.gz bs=1M

3.9 检查设备读写速度

dd if=/dev/zero of=/tmp/ddtest bs=1M count=1000 conv=fdatasync

这个命令将在 /tmp/ddtest 文件中写入1000MB的数据,并报告写入速度,可以用来测试设备的读写速度。测试值仅供参考。

4. 注意事项

dd 命令是一个非常强大和灵活的工具,但在使用时需要格外小心,因为它可以对数据进行直接操作,而且一些操作可能是不可逆的。因此,在使用 dd 命令时,请务必牢记你正在处理的数据的重要性,并谨慎操作。

参考网址:Linux命令200例:dd命令详解及实际应用场景-CSDN博客

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值