1

Я учусь использовать 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 ответ1

3

Ваше одновременное использование bs= 1 и obs=9 конфликтует, поскольку параметр bs определяет размеры входного и выходного блоков.
Очевидно, bs= переопределяет спецификацию obs= .

Попробуйте использовать более конкретный ibs=1 вместо bs=1 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .