我正在通过实验性地使用它的参数来学习使用dd
。我想创建一个 10 字节的文件。我认为以下方法可行:
dd if=/dev/zero of=./foo count=1 bs=1 obs=9 seek=1
...因为手册页中有这些评论:
obs=BYTES write BYTES bytes at a time (default: 512) seek=N skip N obs-sized blocks at start of output
...但事实并非如此;它创建了一个 2 字节文件:
>ls -l foo
-rw-rw-r-- 1 user user 2 Mar 28 16:05 foo
我的解决方法是:
dd if=/dev/zero of=./foo count=1 bs=1 obs=1 seek=9
但就我的学习而言,我想了解为什么第一个版本不起作用。谢谢。
答案1
同时使用bs= 1
和obs=9
会产生冲突,因为 bs 参数指定了输入和输出块大小。
显然bs=
覆盖了obs=
规范。
尝试使用更具体的ibs=1
而不是bs=1
。