dd 命令:复制和转换文件
侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计收到 1 条评论

dd 命令:复制和转换文件

soulio
2024-09-14 / 0 评论 / 5 阅读 / 正在检测是否收录...

一、dd 命令简介

dd​ 命令是一个在 Unix 和类 Unix 系统中用于复制文件和转换文件的命令行工具。它的功能非常强大,可以用于各种目的,例如创建镜像文件、备份和恢复数据、复制数据等。

dd​ 是一个用于读取、转换和写入数据的工具,通常用于块设备级别的操作,比如复制整个磁盘或分区,或者处理单个文件。它不识别文件系统结构,因此不能用来复制目录树或文件夹。

二、dd 命令参数

dd if=<输入文件> of=<输出文件> [bs=<块大小>] [count=<块数量>] [conv=<转换选项>] [status=<进度显示>]

常用选项

  • if=input_file​:指定输入文件。
  • of=output_file​:指定输出文件。
  • bs=block_size​:指定块大小。默认512kB。
  • count=blocks​:指定要复制的块数。
  • status=progress​:显示复制进度。
  • seek=blocks​:在输出文件中跳过指定块数。
  • skip=blocks​:在输入文件中跳过指定块数。

三、dd 命令示例

示例1:dd命令复制文件

dd if=输入文件 of=输出文件

例如

soulio@ubuntu:~/命令大全/dd$ dd if=test_file of=new_file
819200+0 records in
819200+0 records out
419430400 bytes (419 MB, 400 MiB) copied, 2.55206 s, 164 MB/s

示例2:dd命令测试硬盘读写速度

dd if=输入文件 of=输出文件 [块大小] [块数量]

例如

#测试硬盘写入速度
soulio@ubuntu:~/命令大全/dd$ dd if=/dev/zero of=test_file bs=4M count=100
100+0 records in
100+0 records out
419430400 bytes (419 MB, 400 MiB) copied, 0.313331 s, 1.3 GB/s

#测试硬盘读取速度
soulio@ubuntu:~/命令大全/dd$ dd if=test_file of=/dev/null
819200+0 records in
819200+0 records out
419430400 bytes (419 MB, 400 MiB) copied, 1.53856 s, 273 MB/s

示例3:dd命令显示进度

dd if=input_file of=output_file status=progress

例如

dd if=/dev/zero of=大测试文件 bs=4M count=1000 status=progress

recording

示例4:dd命令写入系统镜像

把一个系统镜像写入U盘(也可以是移动硬盘)

sudo dd if=镜像目录 of=U盘目录

例如:ubuntu22.04镜像写入一个U盘(移动硬盘)

$ dd if=debian-12.6.0-amd64-netinst.iso of=/dev/sdc status=progress 
659137024 bytes (659 MB, 629 MiB) copied, 292 s, 2.3 MB/s
1292288+0 records in
1292288+0 records out
661651456 bytes (662 MB, 631 MiB) copied, 303.586 s, 2.2 MB/s

现在可以用这个U盘给电脑安装系统。

示例5:dd命令其他用法

  • 备份磁盘或分区
    复制

    dd if=/dev/sda1 of=/path/to/backup.img bs=4M
    

    这会备份 /dev/sda1​ 分区到 /path/to/backup.img​ 文件,使用4MB的块大小。

  • 格式化USB驱动器
    复制

    dd if=/dev/zero of=/dev/sdb bs=512 count=1
    

    注意:这将擦除USB驱动器上的所有数据,请谨慎操作。

  • 从备份文件恢复磁盘或分区
    复制

    dd if=/path/to/backup.img of=/dev/sda1 bs=4M
    

    将备份的映像恢复到 /dev/sda1​ 分区。

  • 复制光盘到ISO文件
    复制

    dd if=/dev/cdrom of=/path/to/cdrom.iso bs=4M
    

注意事项

  • 使用 dd​ 命令时要格外小心,因为它具有强大的功能,但也很容易导致数据丢失或文件覆盖。
  • 确保在执行命令之前仔细检查命令参数,避免意外的数据损坏。
  • dd​ 命令默认情况下不会显示进度,如果要监控进度,可以使用 status=progress​ 选项。

本文共 573 个字数,平均阅读时长 ≈ 2分钟
0

海报

正在生成.....

评论 (0)

取消