Shell dd script - заполняет нули вместо пропуска байтов

Хорошо для тех, кто заинтересован, я наконец нашел ответ: dd seek=$(($offset)) bs=1 count=$c conv=notrunc if=$loc2 of=$loc1

Поэтому я хочу скопировать "текст" из $ loc2 и вставить его в $ loc1 со смещением 0x2 без удаления байтов перед ним. Когда я запускаю эту команду, независимо от того, в какой позиции она не пропускает байты, а вместо этого заменяет каждый байт на 00 00... до тех пор, пока он не достигнет смещения и оттуда он не будет работать нормально. Например:

offset=0x2
loc2 = 6E 6F 70 71
loc1 = 7E 3B 11 FF   loc1 should change to this ---> 7E 3B 6E 6F 70 71 but instead changes to: 00 00 6E 6F 70 71

Это мой маленький код

offset=0x2
dd skip=$(($offset)) bs=1 count=5 conv=notrunc < $loc2 > $loc1

1 ответ

Вы используете перенаправление, так что на самом деле происходит то, что $loc1 усекается. Вы можете попробовать указать if=$loc2 а также of=$loc1 за dd,

Другие вопросы по тегам