Linux 文件-复制 dd
1. dd 命令简介
dd
命令是 Unix 和类 Unix 系统中的一款强大工具,广泛用于复制文件和转换文件。它的应用场景非常广泛,包括创建镜像文件、备份和恢复数据、以及复制数据等。💾
dd
通常用于低级别的操作,比如复制整个磁盘或分区,它不关心文件系统结构,因此无法用于复制目录或文件夹。这个命令适合处理块级数据,比如复制硬盘、分区或处理单个文件。🚀
2. dd 命令参数
dd if=<输入文件> of=<输出文件> [bs=<块大小>] [count=<块数量>] [conv=<转换选项>] [status=<进度显示>]
常用选项:
if=input_file
:指定输入文件。📂of=output_file
:指定输出文件。📁bs=block_size
:指定块大小,默认值为 512 字节。⚙️count=blocks
:指定要复制的块数(每块大小由bs
决定)。🔢status=progress
:显示复制进度。⏳seek=blocks
:在输出文件中跳过指定块数。⏭️skip=blocks
:在输入文件中跳过指定块数。⏮️
3. dd 命令示例
3.1 示例 1:dd 命令复制文件
使用 dd
命令复制文件,只需 指定输入和输出文件:
dd if=输入文件 of=输出文件
示例输出:
$ 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
3.2 示例 2:dd 命令测试硬盘读写速度
使用 dd
命令测试硬盘读写速度十分简单,只需指定输入、输出文件和相关参数:
dd if=输入文件 of=输出文件 [块大小] [块数量]
测试硬盘写入速度:⚡
$ dd if=/dev/zero of=test_file bs=4M count=1000
1000+0 records in
1000+0 records out
4194304000 bytes (4.2 GB, 3.9 GiB) copied, 5.23438 s, 801 MB/s
/dev/zero
是 Linux 和类 Unix 系统中的一个特殊文件,通常被称为“零设备”。它是一个伪设备,提供无限的零字节(0),用于数据流的输入或输出。
测试硬盘读取速度:⚡
$ dd if=test_file of=/dev/null
8192000+0 records in
8192000+0 records out
4194304000 bytes (4.2 GB, 3.9 GiB) copied, 8.98496 s, 467 MB/s
/dev/null
是 Linux 和类 Unix 系统中的另一个特殊设备,通常被称为“空设备”或“黑洞”。它用于丢弃不需要的输出或输入数据,任何写入到 /dev/null
的数据都会被丢弃,且 不会返回任何错误。
3.3 示例 3:dd 命令显示进度
使用 status=progress
参数显示进度:
$ dd if=/dev/zero of=大测试文件 bs=4M count=1000 status=progress
示例输出:
3.4 示例 4:dd 命令写入系统镜像
将系统镜像写入 U 盘(或移动硬盘):
sudo dd if=镜像目录 of=U盘目录
例如,将 Ubuntu 22.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 盘安装系统。🔧
3.5 示例 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
4. 注意事项
- 使用
dd
命令时要格外小心。它的功能非常强大,但也容易导致数据丢失或文件覆盖。⚠️ - 确保在执行命令之前仔细检查命令参数,避免意外 的数据损坏。🧐
dd
默认不会显示进度,若需要监控进度,请使用status=progress
选项。📊
希望你通过这篇教程了解了 date 命令的常用技巧!别忘了收藏在线知识库( www.zxzsk.com )哦!⭐