之前写的关于dd命令的使用:
linux下DD 命令常用操作 —— 筑梦之路_dd linux-CSDN博客
# 复制文件或设备
dd if=input_file of=output_file bs=block_size
# 创建空白文件
dd if=/dev/zero of=output_file bs=block_size count=number_of_blocks
dd: 这是命令本身,代表disk dump。
if=/dev/zero: 这是输入文件(input file)的路径。这里指定的是/dev/zero,这是一个特殊的设备文件,它只产生零字节(null bytes)。
of=output_file: 这是输出文件(output file)的路径。在这个例子中,输出的文件名为output_file。
bs=block_size: 这是块大小(block size)。这意味着每次读取和写入的数据块的大小。例如,如果block_size是4K,那么每次读取和写入的数据块将是4KB。
count=number_of_blocks: 这指定了要读取和写入的块数。因此,如果block_size是4K,并且number_of_blocks是100,那么将创建400KB的文件。
所以,这个命令的总体效果是从/dev/zero读取零字节,并将这些零字节写入到output_file中,总共写入number_of_blocks个块,每个块的大小为block_size
# 创建随机数据文件
dd if=/dev/urandom of=output_file bs=block_size count=number_of_blocks
# 制作设备镜像
dd if=input_device of=output_file bs=4M
# 显示进度
dd if=input_file of=output_file bs=4M status=progress
status=progress: 该参数显示复制进度信息,你可以在终端中看到复制的进度百分比和已经复制的数据量
# 错误处理
dd可以通过conv=sync,noerror参数进行错误处理,即使在读取错误的情况下,它也会继续进行操作。这在处理损坏的设备或损坏的文件时可能很有用
dd if=input_file of=output_file bs=4M conv=sync,noerror
# 跳过部分数据
有时候,你可能只对文件的一部分数据感兴趣。使用skip参数可以告诉dd跳过输入文件的前几个块。
dd if=input_file of=output_file bs=4M skip=10
上述命令将跳过输入文件的前10个块,只复制后续的数据
# 合并多个文件
通过使用if参数指定多个输入文件,你可以使用dd将它们合并成一个输出文件
dd if=input_file1 of=output_file bs=4M
dd if=input_file2 of=output_file bs=4M seek=1
seek=1表示在输出文件中跳过一个块,以确保新的数据追加到正确的位置