Как через DD перезаписать область данных в середине файла?

Здравствуйте.
Задача: через dd перезаписать часть данных в середине текстового файла.

Имеется файл 1.txt с содержимым "1234567890abcde11111", размер 20 байтов.
Беру из /dev/zero например 3 раза по 1 байту и пишу с 4-кратным пропуском в 1 байт.
Последовательность команд такая:
$ echo "1234567890abcde11111" > 1.txt

$ dd if=/dev/zero of=1.txt bs=1 count=3 seek=4
3+0 записей получено
3+0 записей отправлено
3 байта скопировано, 0,000107337 s, 27,9 kB/s

$ hexdump -C 1.txt
00000000  31 32 33 34 00 00 00                              |1234...|
00000007

$ cat 1.txt
1234

Т.е. по логике я ожидаю увидеть такую строку: "1234...890abcde11111". Т.е. должны перезаписаться только последовательность 567 и всё.
Но по итогу получаю "1234...". То есть после нулей файл обрезается.
Вопрос почему? И как сделать так, чтобы файл не обрезался?
Спасибо.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Добавьте conv=notrunc
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы