如何使用dd命令将一个文件复制到另一个文件的某个位置?

如何使用dd命令将一个文件复制到另一个文件的某个位置?

我想使用ddLinux中的命令将某个位置的256字节文件复制到另一个包含随机数据的2048字节大小的文件中。我的偏移量是144.我假设bs=1count=256、 和seek=144。这是我运行的命令:

dd if=file1.data of=file2.data bs=1 count=256 seek=144

然而,当我运行它时,file2.data 的大小仍应为 2048 字节,但会减少。有人可以帮我弄清楚为什么我的命令是错误的以及如何确保文件放置在正确的位置吗?

答案1

然而,当我运行它时,file2.data其大小仍应为 2048 字节,但会减少。

此行为有记录:

of=file
指定输出路径名;默认为标准输出。 [...] 如果指定了,但没有指定,则复制的效果应是保留输出文件中查找的块,但不应保留输出文件的其他部分。 (如果查找的大小加上输入文件的大小小于输出文件的先前大小,则输出文件应通过副本缩短。[...])seek=exprconv=notruncdd

来源

使用conv=notrunc。操作数是可移植的。

conv=value[,value ...]

[…]

notrunc
不要截断输出文件。保留输出文件中未通过调用 dd 实用程序显式写入的块。 […]

(同上)

在其他方面,您的命令看起来不错。固定命令:

dd if=file1.data of=file2.data bs=1 count=256 seek=144 conv=notrunc

相关内容