dd命令的作用是什么?


8

几天前,我很高兴地发现,如果没有明确设计的第三方程序的帮助,将iso映像写入USB并不困难。但是促进这一点的命令(或程序)-dd-使我感到困惑。

根据Wikipedia的说法,它旨在复制和转换原始数据,但老实说,我发现此定义非常模棱两可且含糊不清。我知道它可以让您将一个数据转换为另一数据,但是如果指定的输出文件太小而无法转换为指定的输入文件,会发生什么呢?

dd if=giant_file of=tiny_file

另外,当我创建带有映像文件的可引导USB时,USB的文件系统类型为isofs,但是如果我将归档文件或可执行文件写入驱动器,它将保留其常规文件系统类型。

非常感谢您对dd命令的实际作用或在较低级别的工作方式进行任何澄清。谢谢!

Answers:


8

dd从源到目标逐字节复制,并使用conv参数指定的可选转换。它执行读取和写入由指定*bs*flag选择,与由所限定的范围countskipseek选项。

如果指定的输出文件太小而无法转换为指定的输入文件,会发生什么?

如果of太小而无法容纳,if则数据将被截断以适合。请注意,如果of是常规文件,则将其覆盖。


1
of即使不是文件也将被覆盖-这是(偶然地?)破坏分区/驱动器的一种非常好的方法!这就是为什么对目的地(如果是驱动器/分区)进行双重检查(甚至是三次检查)非常重要,以确保您拥有正确的驱动器/分区。
鲍勃

1
从技术上讲它写入的对象,而不是覆盖它。
伊格纳西奥·巴斯克斯

感谢您的回答。如果您不包含任何参数,但dd if=executable of=archive.tar假设它们都具有相同的大小,则执行,该怎么办?存档会完美地转换为可执行文件吗?
ICoffeeConsumer 2012年

1
它将一次从一个字节复制executablearchive.tar512个字节。它不会将二进制文件转换为存档文件。
伊格纳西奥·巴斯克斯

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.